正则表达式是用来对文本进行筛选、查找进行规范的表达式,这种表达式在对字符(串)进行筛选的时候,非常方便。

下面就几种常见的正则表达式做逐一阐述

1. 行首定位符  ^ 

实验文本

haozi,this is a test for regular

expression.haozi

you will find it's wonderful feature.

输入 grep ^ haozi 显示第一行

2. 行尾定位符 $  用来定位所指定的字符(串)存在于某行的行尾的行

实验文本同上。

输入 grep haozi$ 显示第二行

3. 词首定位符 \<  

4. 词尾定位符 \>

以上两个定位符用来精确定位一个指定的词

实验文本:

haozi,this is a test for regular

expression.haozik

khaozi ,you will find it's wonderful feature.

输入 grep \<haozi>\   用来定位haozi  只显示第一行

如果输入 grep haozi  以上三行都会显示。

5.  通配符 .   是英文的句号,即dot符号。

用来匹配任意单个字符

实验文本:

haozi,this is a test for regular

expression.haozik

khaozi ,you will find it's wonderful feature. 

输入 grep  haozi.  显示第一二行

6. 用来指定和紧接着前面字符重复次数的定位符 * 

表示重复前面紧紧相邻的那个字符0次到多次

实验文本:

实验文本:

aaabbccdd

abbcd

ddee

输入 grep a*bbc* 将显示第一二行

7. 指定范围字符中的任意一个

[A-Z] 指定 出现大写字母A-Z中的任何一个,就匹配改行

实验文本 :

AAcD

BD

abcd

输入 grep [A-Z]  将显示  第 一二行

8. 指定字符串中的任意一个字符

[abAB] 出现这四个字符中的任意一个就匹配。

实验文本 :

AbcD 

EFB

EFG

输入 grep  [abAB]  显示第一、二行

9. 相反匹配字符

匹配不在指定的字符串内的字符,

[^A-Z] 不是大写字符A-Z的范围,就匹配改行

[^not]  不是 not这个单词则匹配改行

实验文本,

not yes

yes right

输入 grep [^not] 显示 第二行

 

注:第9点,有待确认,实验的结果表明,似乎这样取反不行。

但是,grep -v 这个grep自身携带的参数就可以取反