正则表达式即一个文本匹配字符串的一种模式,Qt中QRegExp类实现使用正则表达式进行模式匹配,且完全支持Unicode,主要应用:字符串验证、搜索、查找替换、分割。
正则表达式中字符及字符集
元素 |
含义 |
c |
匹配字符本身,如a匹配a |
\c |
跟在\后面的字符匹配字符本身,但本表中下面指定的这些字符除外。 |
\a |
匹配ASCII的振铃 |
\f |
匹配ASCII的换页 |
\n |
匹配ASCII的换行 |
\r |
匹配ASCII的回车 |
\t |
匹配ASCII的水平制表符 |
\v |
匹配ASCII的垂直制表符 |
\xhhhh |
匹配Unicode字符对应的十六进制数 |
\0ooo |
匹配八进制的ASCII/Latin1字符 |
. |
匹配任意字符 |
\d |
匹配任意一个数字 |
\D |
匹配一个非数字 |
\s |
匹配一个空白字符,包括“\t”、“\n”、“\v”、“\f”、“\r”及“” |
\S |
匹配一个非空白字符 |
\w |
匹配一个单词字符,包括任意字符数字下划线,即A~Z,a~z,0~9中任意一个 |
\W |
匹配一个非单词字符 |
\n |
第n个反向引用 |
正则表达式中的量词
量词 |
含义 |
E? |
匹配0次或1次等价于E{0,1} |
E+ |
匹配1次或多次,等价于E{1,} |
E* |
匹配0次或多次,等价于E{0,} |
E{n} |
匹配n次 |
E{n,} |
匹配至少n次 |
E{,m} |
匹配至多m次 |
E{n,m} |
匹配至少n次,至多m次 |
正则表达式中的断言
断言 |
含义 |
^ |
标志字符串的开始。若匹配“^”则使用“\\^” |
$ |
标志字符串的结尾。若匹配“$”则使用“\\$” |
\b |
一个单词的边界 |
\B |
一个非单词的边界。当\b为false则它为true |
(?=E) |
表达式后紧跟E才匹配 |
(?!E) |
表达式后不跟E才匹配 |
QRegExp同时支持通配符
通配符 |
含义 |
c |
任意一个字符,表字符本身 |
? |
任意一个字符,类似regexp中“.” |
* |
任意0个或多个字符 |
[...] |
在[]中的字符集 |