Matrix
Klarke's C/C++ Home
posts - 61,comments - 0,trackbacks - 0

1.量词:
一个量化元字符是由一个元字符后面紧接着一个简单的量词组成,如果没有量词,就只匹配这个元字符,量词如下:

*

匹配0个或多个元字符的序列

+

匹配1个或多个元字符的序列

?

匹配0个或1个元字符的序列

{m}

严格匹配m个元字符的序列

{m,}

匹配m个或多个元字符的序列

{m,n}

匹配m个到n个元字符的序列

*? +? ?? {m}? {m,}? {m,n}?

非贪婪量词,与贪婪量词匹配的方式相同,但是非贪婪两次只匹配最少能匹配到的序列,而贪婪匹配需要匹配最多能匹配的序列。

使用{}的形式需要受限,mn必须是无符号整数,取值在0255之间。

2.元字符:
元字符是以下几种形式:

(re)      将一个元字符括起来(re是任意正则表达式)。
(?:re)   与上面相同,但是不报告(不捕获括号的配置)
()          匹配一个空字符串
(?:)       与上面相同,但是不报告
[chars] 一个中括号表达式,匹配任何一个chars中的字符。
.           匹配任意一个字符
\k         匹配非字母和数字字符
\c         匹配escape项目中所罗列的字符
{          当后面不是数字时,匹配"{",当后面跟着数字时,是一个量词范围的开始(只支持AREs
x          x是一个字符时就匹配这个字符
约束    在特定的条件下约束匹配一个空字符串,约束的后面不能是量词,简单的约束如下,其它的在ESCAPES之后介绍:
^          在字符串的开头匹配
$          在字符串的结尾匹配
(?=re)  向前肯定,匹配任何以re开始的子字符串。
(?!re)   向前否定,匹配任何不以re开始的子字符串。

向前约束可能不包含向后,所有的括号都不捕获。
一个正则表达式不能够以"\"结尾。

posted on 2010-09-26 17:46 Klarke 阅读(129) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理