一:正则表达式的语法规则 一个完整的正则表达式由两部分构成:元字符和文本字符。元字符就是具有特殊含义的字符,如"*"和"?"。文本字符就是普通的文本,如字符和数字等。PCRE风格的正则表达式一般都放置在定界符"/"中间。
1.行定位符(^和$) 2.单次定界符(\b、\B)
3.字符类([ ]) 4.选择符(|)
5.连接符(-) 6.排除符([^])
7.限定符(? * + {n,m}) 8.点号字符(.)
9.转义字符(\) 10.反斜线(\)
11.括号字符(()) 12.反向引用
13.捕获 14.断言(环视)
15.模式修饰符
行定位符(^和$): 行定位符就是用来描述字串的边界。"^"表示行的开始,"$"表示行的结束。
单次定界符(\b、\B): 要匹配一个完整的单词,二不是单词中一部分,可以使用单词分界符"\b ",表示要查找的字符串为一个单词。如: \brm\b
还有一个大写的\B,意思和\b相反。它匹配的字串不能是一个完整的单词,而是其他单词或字串的一部分。如:\Btm\B
字符类([ ]) 正则表达式是区分大小写的,如果要忽略大小写该怎么办呢?解决的方法有很多。其中的一个方法就是使用方括号表达式"[ ]"。只要匹配的字符出现在方括号内,即可表示匹配成功。但要注意:一个方括号只能匹配一个字符。如:要匹配不分大小写的字串tm,格式如下:[Tt][Mm]
选择字符(|): 选择字符(|),可以理解为"或",如上例也可写成(T|t)(M|m),该表达式的意思是以字母T或t开头,后面接一个M或m。
连字符(-): 连接符可以表示字符的范围。如[ab...ZAb...Z]可以写成[a-zA-z]
排除字符([^]): 前面的例子是匹配符合命名规则的变量。现在反过来,匹配不符合命名规则的变量。这时该怎么做呢?正则表达式提供了"^"字符。这个字符曾经出现过,表示行的开始。而这里放到方括号中,表示排除的意思。例如:[^a-zA-z]该表达式匹配的就是不以字母开头的变量名。
限定符(? * + {n,m}): 对于这类重复出现字母或字串,可以使用限定符来实现匹配。限定符主要有六种。
? 匹配前面字符零次或一次
+ 匹配前面字符一次或多次
* 匹配前面字符零次或多次
{n} 匹配前面字符n次
{n,} 匹配前面字符最少n次
{n,m} 匹配前面字符最少n次,最多m次
点号字符(.): 点字符(.)可以匹配除换行符外的任意一个字符。注意:是除了换行符外的、任意的、一个字符。如匹配以"s"开头,"t"结尾。中间包含一个字母的单词。格式如下:^s.t$
转移字符(\) 正则表达式中的转移字符(\)是将特殊字符(如"."、"?"、"\"等)变为普通字符、
反斜线(\)除了可以做转义字符外,帆斜线还有其他一些功能,如:
反斜线可以将一个不可打印的字符显示出来。
还可以指定预定义字符集。如:\d表示任意一个十进制数字 \s 表示任意一个空白字符
反斜线还有一种功能就是定义断言。
括号字符(()):
小括号字符的第一个作用就是可以改变限定字符的作用范围。如"|" "*" "^"等等,来看一个表达式(thir|four)th,这个表达式的意思是匹配thirth或fourth,如果不使用小括号,那么就变成了匹配单词thir和fourth了。
小括号的第二个作用是分组,也就是子表达式。如(\.[0-9]{1,3}){3},就是对分组(\.[0-9]{1,3})进行重复操作。
Qt中的正则表达式:
http://eroshn.iteye.com/blog/801783
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。