正则表达在脚本编程中使用的非常多,正则表达式是一些特殊或不很特殊的字符串模式的集合。

    基本元字符集及含义:

 ^       只匹配行首

$        只匹配行尾

*        一个字符后跟*,代表匹配0个或多个单字符

[]       匹配[]内的字符,可以是一个单字符,也可是字符序列,可以使用—表示字符序列内的范围,例如:[1-5]可以代替[12345]

\        可以屏蔽某些元字符的特殊含义,即\ 可以使有特殊含义的字符当成普通字符

.        匹配任意单字符

pattern\{n\}   匹配前面pattern出现的次数,n为次数

pattern\{n,\}m  同上,但是次数是最少为n

pattern\{n,m\}  同上,但是次数是在nm之间

注意,^$代表匹配空行

      ^.$代表配置只包含一个字符的行

 

 

\屏蔽特殊字符的特殊含义举例:

假定匹配包含“.”的行,则要这样写:\.

假定匹配包含“^”的行,则:\^

假定匹配以*.pass结尾的文件,可以这么写:\*\.pass

 

[]  匹配[]内字符的使用举例:

匹配任意数字,可以使用[0-9]来表示

匹配任意小写字母,可以使用[a-z]

匹配任意字母,则使用[A-Za-z]表示

 

注意^的使用,当直接用在第一个括号内表示否定或不匹配括号里的内容

[^a-zA-Z]匹配任意非字母型字符

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

 

常用正则表达举例:

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

^......$     匹配包含6个字符的行

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

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

[^0-9A-Za-z]   非数字或字母

[123]          1到3中的任意一个数

De..ce         前两个字符是De后面跟两个任意字符,最后为ce

\^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

[^.*$]           匹配任意行