1.使用句点"."匹配任意单字符

句点"."可以匹配任意单字符 。例如,如果要匹配一个字符串,以beg开头,中间夹一个任意字符串,那么可以表示为beg.n,"."可以匹配字符串头,也可以是中间任意字符。

例如在ls -l命令中,可以 匹配一定的权限:

...x..x..x

此格式匹配用户本身,用户组与其他组成成员的执行权限。

drwxrwxrw-    -no match

-rw-rw-rw-      -no match

-rwxrwxrwx     match

文本过滤中,对于一个有10个字符的文本文件,要求前4个字符后为XC,匹配操作:....XC....

1234XC8984      -match

4567XXcnjk        -no match

2.行首以"^"匹配字符串或者字符序列

^只允许在一行的开始匹配字符或者单词。例如,使用 ls -l命令,并匹配目录。之所以可以这样做是因为ls -l命令结果每一行第一个字符是d,即代表一个目录。

^d匹配以d开头的字符串

drwxrwxrw-       -match

-rw-rw-rw-         -no match

d---------             -match

^ofof匹配以ofof开头的字符串

ofofjikjkl        -match

ofodsdss       -no match

ofof               -match

^...sxc..两种模式结合起来使用,

hdksxccckkk     -match

jkk455hkdjsj      -no match

jkksxcjkljklkl       -match

 3.行尾以"$"匹配字符串或者字符

$与^正相反,以...结尾,行尾匹配字符串或字符,$放在匹配单词后

hand$   以hand结尾的所有行,

^$          匹配所有空行

^.$         匹配单字符行

4.使用"*"匹配字符串中的字符或字符串的重复序列

compu*t:匹配字符u一次或者多次:

computer

computing

compuuuute

10133*:匹配:

101333

10133

101344444

*还有一个神奇的地方就是[a-z]*能够匹配任意字母字符串,而不是一个任意字母字符,所以.*能够匹配所有的字符串。

 5.使用"\"屏蔽一个特殊字符的含义

特殊字符在字符串中具有特殊的含义,但是有时候我们需要查找这些特殊字符或者字符串可以使用"\"屏蔽其匹配含义

特殊字符:$ . ' " * [ ] ^ | () \ + ?

\. 匹配"."而不是任意单字符

\^匹配"^"

\*\.make匹配*.make

6.使用 []匹配一个范围或集合

使用[]匹配特定字符串或者字符串集,可以使用逗号将括弧内要匹配的不同字符串分开,但并不强制要求这样做,这样做可以增加模式的可读性

使用"-"表示一个字符串范围,表明字符串范围从"-"左边字符开始,"-"右边字符结束。

如果熟知一个字符串匹配操作,应该经常使用[]模式

[0123456789]或[0-9]      匹配任意一个数字

[a-z]                                匹配任意小写字母

[A-Za-z]                          匹配任意字母

[A-Za-z0-9]                     匹配任意字母或者数字

s[a-z A-Z]                       匹配一个以s开头中间有一个任意字母,以t结尾的字符串

s[a-z]t                             匹配一个以s开头中间有一个任意小写字母,以t结尾的字符串

[Cc]omputer                    Computer或者computer

[^A-Za-z]                         匹配任一非字母型字符

[^0-9]                               匹配任一非数字

7.使用\{\}匹配模式结果出现得到次数

 使用"*"可匹配所有匹配结果任意次,但如果指定次数,就应使用\{\},此模式有三种形式,即:

pattern\{n\}          匹配模式出现n次

pattern\{n,\}         匹配模式出现最少n次

pattern\{n,m}       匹配模式出现n到m次之间

A\{2\}B                 匹配AAB

A\{4,\}B                结果AAAAB或者AAAAAAAAAB...

例:

4567XC4567

3895XX7884

0011XA4564

9999XC4545

[0-9]\{4\}X[XAC][0-9]\{4\}可以匹配上面所有的字符串