1、特珠代码:

\b   退格键,也就是说把输出的光标往回退格子      
\d+  表示1位或更多位数字
\d   表示数字
\t   表示制表符,Tab
\r   表示回车符,把光标移动到行首而不换行
\n   表示换行符昌,把光标移动到行首并且换行
\s   表示代表任意空白字符,包括空格,制表符(Tab),换行符
\w   表示字母数字
^    表示匹配字符串的开始
$    表示匹配字符串的结束

例子:

0\d{2}-\d{8}   表示以0开头,\d表示必须连续重复出现2次,再以-为分隔符,\d表示必须连续重复出现8次数字,跟0\d\d-\d\d\d\d\d\d\d\d含意相同
^\d{5,12}$     {2}代表只能不多不少重复2次,{5,12}则是必须重复最少5次,最多12次,否则都不匹配
\ba\w*\b       匹配以字母a开头的单词-先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
\b\w{6}\b      匹配刚好6个字母/数字的单词。

注意:"+" 是和 "*" 类似的特殊代码,不同的是*代表重复任意次(可能是0次),而+则代表重复1次或更多次。


2、反义

\W        表示匹配任意不是字母和数字的字符
\S        表示匹配任意不是空白符的字符
\S+       表示不包含空白符的字符串。
\D        表示匹配任意非数字的字符
\B        表示匹配不是单词开头或结束的位置
[^x]      表示匹配除了x以外的任意字符
[^wsyht]  表示匹配除了wsyht字母以外的任意字符
]+>  表示用尖括号括起来的以a开头的字符串,再匹配除了>以外的其它字符

3、字符转义:

转义前  转义后

\.   ->   .
\*   ->   *
\\   ->   \
\^   ->   ^
\#   ->   #
\(   ->   (
\)   ->   )

4、重复

.     表示除了换行符之外的其它字符
*     表示前边的内容可以重复任意次,可能是0次
.*    表示任意个字符
+     表示重复一次或更多次
?    表示零或一次
{n}   表示重复n次
{n,}  表示重复n次或更多次
{n,m} 重复n次到m次
例子;
Windows\d+      匹配Windows后面跟1个或更多数字
13\d{9}         匹配以13后面跟9个数字(中国的手机号)
^\w+            匹配一行的第一个单词(或整个字符串的第一个单词,具体代表哪个意思得看选项设置)

5、字符匹配:

[abcde]      匹配a、b、c、d、e任意一个字母
[!@#$%]      匹配!、@、#、$、%任意一个字符
[0-9]        匹配0到9任意一位数字,和\d含意一致
[a-zA-Z0-9]  匹配任意一位数字或字母,不分区分大小写,和\w含意一致,和[a-zA-Z]含意一致
[^a-z]       范围内取反 
[#_-]        匹配#_-的行
[#-_]        匹配从#到_的行
[?!_-]       范围内匹配字符
^[^a-z] 不以小写字母任意开头的行
匹配MAC地址的正则表达式
00:0c:29:C1:C1:FF
0 1 2 3 4 5 6 7 8 9 A B C D E F 
  a b c d e f 
[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-f]{2}:
[0-9a-fA-F]{2}
可转换成如下:
grep -E '([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}' ifcfg-eth0


6、替换(多项匹配)

0\d{2}-\d{8}|0\d{3}-\d{7}      匹配两种以"-"分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)
\(0\d{2}\)[- ]?\d{8}|0\d{2}[- ]?\d{8}  匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔
\d{5}-\d{4}|\d{5}    匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字
Windows98|Windows2000|WindosXP   匹配Windows98 或 Windows2000 或 WindosXP

7、分组

用小括号来指定子表达式(也叫做分组)

获取IP地址分组展示:

((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
IP址第1、2、3、4列可能出现的三位数
21[0-9]
22[0-9]
23[0-9]
24[0-9]
或
251,
252
253
254
255
或
[01][0-9][0-9]+

8、位置指定

(?=exp)     匹配exp前面的位置
(?<=exp)     匹配exp后面的位置
(?!exp)     匹配后面跟的不是exp的位置
(?