正则表达式

来源:互联网 发布:淘宝价格用什么字体 编辑:程序博客网 时间:2024/06/14 18:29

1、{d}表示单个数字,{d}{n}表示一个n个数字的序列。(如,{d}{3}匹配三个数字的序列)
2、在方括号中的字符集合表示匹配这些字符中的任意一个。如[- .]匹配一个短横或一个空格或一个点,注意,点在括号中没有特殊含义
3、后接?的组件是可选的。如,{d}{3}[- .]?{d}{4}匹配这样的序列:开始是3个数字,后接一个短横或空格或点,然后是4个数字,但[- .]是可选的,也就是说可以没有这一个匹配,例如此例可以匹配555-1234,或者555.123或555 1234或5551234。
4、类似C++,使用反斜线表示一个字符本身而不是其特殊含义。即反斜线要用\表示,而不能用\。因此正则表达式{d}{3}在C++中表示为\{d}{3}。
5、+表示希望一个或多个匹配,表示希望0个或多个匹配,[[:alpha:]]表示匹配任意字母,[[:alpha:]]*就表示将匹配0个或多个字母,^表示匹配除后接的字符以外的任意字符,如[^c]表示匹配除c以外的任意字符;
6、为了获得匹配的组成部分,而不仅仅是一个整个表达式,我们在定义正则表达式时使用子表达式,每个子表达式使用括号括起来。
例如:“(\()?(\{d}{3})(\))?([- .])?(\{d}{3})([- .])?(\{d}{4})”;
此模式就使用了括号,共有7个子表达式:
1.(\()?表示匹配可选的左括号;
2.(\{d}{3})表示匹配3个数字;
3.(\))?表示匹配可选的右括号;
4.([- .])?表示匹配可选的分隔符;
5.(\{d}{3})表示匹配3个数字;
6.([- .])?表示匹配可选的分隔符;
7.(\{d}{4})表示匹配4个数字;
C++使用regex类来表示一个正则表达式,使用regex_match和regex_search来确定一个给定的字符序列与一个给定的regex是否匹配,若整个序列都匹配,regex_math返回true,若序列中的一个子表达式与regex匹配,则regex_search返回true。

0 0
原创粉丝点击