1) . : 匹配任意单ASCII 字符,可以为字母,或为数字。

2) 举例: ..XC..匹配deXC1t、23XCdf
等,.w..w..w.匹配rwxrw-rw-
行首以^匹配字符串或字符序列

1) ^ : 允许在一行的开始匹配字符或单词。

2) 举例: ^.01 匹配0011cx4、c01sdf 等,^d
匹配drwxr-xr-x、drw-r--r--等
行尾以$匹配字符串或字符

1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后。

2) 举例: trouble$ 匹配以单词trouble
结尾的所有行

^$匹配所有空行

使用*匹配字符串中的单字符或其重复序列(与文件名置换中的"*"不一样)

1) * : 一个单字符后紧跟*,匹配0 个或多个此单字符。

2) 举例: compu*t 将匹配字符u
一次或多次,即匹配computer computing compuuute
等

1033* 可以匹配 101333 10133 1013444
等

3) 在正则表达式中使用"*",有时会产生非预期的结果。

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

1) \ : 用来屏蔽一个元字符的特殊含义。因为有时在shell
中元字符有特殊含义。\可以使其失去应有意义。

2) 举例: 在正则表达式中匹配以*.pas 结尾的所有文件: \*\.pas$

使用[]匹配属于一个范围或集合单个字符

1) [ ] : 匹配"[
]"内的字符。可以是一个单字符,也可以是字符序列。可以使用"-"表示括号"[ ]"内字符序列范围,

如用[1-5]代替[12345]。可以用逗号","分隔括号"[]"内的字符。

2) 当"^"符号当直接靠着"[",意指否定或不匹配括号"[]"里内容

3) 举例: [0-9]匹配任意一个数字;[a-z]匹配任意一个小写字母;[0-9A-Za-z]匹配任意字母或数字;

[C,c]omputer 匹配Computer
和computer;[^a-zA-Z]匹配任一非字母型字符

使用"\{\}"匹配模式结果出现的次数

1) pattern\{n\} 匹配模式pattern 出现n 次的情形。

2) pattern\{n,\}  : 匹配模式pattern 最少出现n 次的情形。

3) pattern\{,m\}  : 匹配模式pattern 最多出现m 次的情形。

4) pattern\{n,m\} : 匹配模式pattern 出现次数在n
与m 之间的情形。

5) 举例: A\{2\}B 匹配的值为AAB

A\{2,\}B   匹配的值可以是AAB 或AAAAAB,但不能匹配AB

A\{2,4\}B  匹配的值可以是AAB、AAAB、AAAAB,但不能匹配AB 或AAAAAB 等

[0-9]\{4\}CX[0-9]\{4\}  匹配数字出现4
次后跟CX,最后是数字出现4 次的情形

6) 实际上真正的格式是 {n} {n,} {,m} {n,m},只不过对"{"和"}"应用了Esacpe 字符"\"。

经常使用的正则表达式举例
[Ss]igna[lL] 
 匹配单词signal、signaL、Signal、SignaL

[Ss]igna[lL]\. 同上,但加一句点

^USER$    
    只包含USER
的行

\.    
  
     带句点的行

^d..x..x..x   
对用户、用户组及其他用户、组成员有可执行权限的目录

^[^l]    
    
排除符号链接文件后的文件目录列表(即不是以"l"开始的行)

[yYnN]    
    大写或小写y
或n

^.*$    
  
   匹配行中任意字符串

^......$    
  包括6 个字符的行

[a-zA-Z]    
  任意单个字母

[a-z]*    
  
 至少一个小写字母

[^0-9\$]    
  非数字或美元符号

[123]    
     1 到3
中一个数字

\^q    
  
    以^q
开始行

^.$    
  
  
 仅有一个字符的行

^\.[0-9][0-9]  以一个句点和两个数字开始的行


[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\} 
  
  
  
    

日期格式dd-mm-yyyy

[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}  类IP
地址格式

    
  
  
  
  
  
  
  
  
  
  
  
  
  
   

nnn.nnn.nnn.nnn

.*    
  
    
匹配任意多个字符