正则表达式

1、普通字符
    字母、数字、汉字、下划线,以及没有被定义特殊意义的标点符号,都是“普通字符”。如果一个表达式中,所有的字符都是“普通字符”,那么这个表达式的匹配操作,实际上就是一个普通的“字符串查找”操作。

2、转义字符

\r

回车符(\x0D)

\n

换行符(\x0A),Windows中文本文件使用“\r\n”来结束一行,而Unix使用“\n”

\t

制表符(\x09)

\x20

使用两位十六进制表示形式,可与该编号的字符匹配

\u002B

使用四位十六进制表示形式,可与该编号的字符匹配

\Q...\E

使用\Q 开始,\E 结束,可使中间的标点符号失去特殊意义,将中间的字符作为普通字符。


3、元字符

^

匹配输入字符串的开始位置

$

匹配输入字符串的结尾位置

()

标记一个子表达式的开始和结束位置

[]

用来自定义能够匹配“多种字符”的表达式

{}

修饰匹配次数的符号

.

匹配除了换行符(\n)以外的任意一个字符

?

修饰匹配次数为 0 次或 1 次

+

修饰匹配次数为至少 1 次

*

修饰匹配次数为 0 次或任意次

|

左右两边表达式之间“或”关系


4、字符集

.

可以匹配除了换行符(\n)以外的任意一个字符

\w

可以匹配任何一个字母或者数字或者下划线

\s

可以匹配空格、制表符、换页符等空白字符的其中任意一个

\d

可以匹配任何一个0~9数字字符

\W

\W=[^\w]

\S

\S=[^\s]

\D

\D=[^\d]

    特殊符号,如果被包含于中括号中,则失去特殊意义,但“]\^-”除外。例如,要搜索星号*或加号+,你可以用[+*]

5、次数限定符

“贪婪模式”

 

{n}

表达式固定重复n次

{m, n}

表达式尽可能重复n次,至少重复m次

{m,}

表达式尽可能的多匹配,至少重复m次

?

表达式尽可能匹配1次,也可以不匹配,相当于{0,1}

+

表达式尽可能的多匹配,至少匹配1次,相当于{1,}

*

表达式尽可能的多匹配,最少可以不匹配,相当于{0,}

“懒惰模式”

 

{m,n}?

表达式尽量只匹配m次,最多重复n次。

{m,}?

表达式尽量只匹配m次,最多可以匹配任意次。

??

表达式尽量不匹配,最多匹配1次,相当于{0,1}?

+?

表达式尽量只匹配1次,最多可匹配任意次,相当于 {1,}?

*?

表达式尽量不匹配,最多可匹配任意次,相当于{0,}?


6、选择符
    使用竖线“|”分隔多段表达式,整个表达式可匹配其中任意一段,正则引擎是急切的,当它找到一个有效的匹配时,它会停止搜索。因此在一定条件下,选择符两边的表达式的顺序对结果会有影响。

7、分组()
    把正则表达式的一部分放在圆括号内,你可以将它们形成组。然后你可以对整个组使用一些正则操作,例如重复操作符。

8、命名分组(?<name>xxx)
    与普通分组一样的功能,并且将匹配的子字符串捕获到一个组名称或编号名称中。
posted @ 2011-11-26 22:27  Leung文  阅读(161)  评论(0编辑  收藏  举报