正则表达式语法

Posted on 2006-07-15 01:13 紫雨轩 C++ 阅读(788) 评论(0)  编辑 收藏 引用
字符元 意义    
. 匹配单个字符    
[ ] 指定一个字符类,匹配方括号内的任意字符。例:[abc] 匹配 "a", "b"或 "c"。    
^ 如果^出现在字符类的开始处,它否定了字符类,这个被否定的字符类匹配除却方括号内的字符的字符。如:[^abc]匹配除了"a", "b"和"c"之外的字符。如果^出现在正则表达式前边,它匹配输入的开头,例:^[abc]匹配以"a", "b"或"c"开头的输入。    
- 在字符类中,指定一个字符的范围。例如:[0-9]匹配"0"到"9"的数字。    
? 指明?前的表达式是可选的,它可以匹配一次或不进行匹配。例如: [0-9][0-9]? 匹配"2"或"12"。    
+ 指明?前的表达式匹配一次或多次。例如:[0-9]+匹配"1", "13", "666"等。    
* 指明*前的表达式匹配零次或多次。    
??, +?, *? ?, +和*的非贪婪匹配版本,它们尽可能匹配较少的字符;而?, +和*则是贪婪版本,尽可能匹配较多的字符。例如:输入"<abc><def>", 则<.*?> 匹配"<abc>",而<.*>匹配"<abc><def>"。    
( ) 分组操作符。例如:(d+,)*d+匹配一串由逗号分开的数字,例如: "1"或"1,23,456"。    
{ } 指明一个匹配群组,实际输入文本将匹配大括号内的表达式,匹配结果可以通过CAtlREMatchContext对象来获得。    
 转义字符,转义紧跟的字符。例如,[0-9]+ 匹配一个或多个数字,而 [0-9]+ 匹配一个数字后跟随一个加号的情况。反斜杠也用于表示缩写,a 就表示任何数字、字母。如果后紧跟一个数字n,则它匹配第n个匹配群组(从0开始),例如,<{.*?}>.*?</0>匹配"<head>Contents</head>"。注意,在C++字符串中,反斜杠需要用双反斜杠来表示: "+", "a", "<{.*?}>.*?</0>"。    
$ 放在正则表达式的最后,它匹配输入的末端。例如:[0-9]$匹配输入的最后一个数字。    
| 间隔符,分隔两个表达式,以正确匹配其中一个,例如:T|the匹配"The" 或"the"。    
! 否定操作符,不匹配后边紧跟的表达式,例如:a!b 匹配后边不紧跟"b"的"a" 。  
缩写匹配
 
缩写 匹配    
a 字母、数字([a-zA-Z0-9])    
b 空格(blank): ([ t])    
c 字母([a-zA-Z])    
d 十进制数 ([0-9])    
h 十六进制数([0-9a-fA-F])    
n 换行: (r|(r?n))    
q 引用字符串("[^"]*")|('[^']*')    
w 一段文字 ([a-zA-Z]+)    
z 一个整数([0-9]+)  

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


posts - 18, comments - 22, trackbacks - 0, articles - 7

Copyright © 紫雨轩 C++