QRegex提供字符串验证,匹配,搜索,替换和切割的功能
一个比较简单的例子是
QRegExp exp("-(.*)\(");
exp.setMinimal(true);
这儿匹配的是以-开头,以(结束的字符串
基本的QRegex
1.isValid()判断给定表达式是否合法
2.errorString()检错误和isValid()类似
3.isEmpty()判断正则表达式是否为空
4.caseSensitivity()检测大小写敏感
5.pattern()获取正则表达式本身
6.capturedTexts
获取捕获的所有字符串
7.cap()获取捕获的字符串索引从1开始
8.numCaptures()返回匹配的字符串个数
9.
indexIn ( const QString & str, int offset = 0, CaretMode caretMode= CaretAtZero ) const
从字符串给定偏移匹配之
10.还有一个函数需要交代的是setMinimal(int minimal)
该函数主要作用是开启或者关闭最小匹配
举一个例子:
"We must be <b>bold</b>, very <b>bold</b>!" and the pattern <b>.*</b>.
如果设置正则表达式为<b>.*</b>
如果设置为最大匹配,则捕获到<b>bold</b>,very <b>bold</b>
如果设置为正则表达式,
则第一次匹配到第一个<b>bold</b>
第二次匹配到第二个<b>bold</b>
基本的正则表达式如下:
\r 回车
\n 换行
\t 制表
\\ \本身
\" "
\^ ^
\$ $
\s 匹配空白符
\~ 匹配字符串开始
$ 匹配字符串结束
\b 单词的开始或者结束
[] 匹配其中的一个字符 比如[abc]匹配a,b或者c [^abc]匹配a,b,c之外的字符 [a-c] 匹配a到c之间的字符
{n} 匹配出现n次 比如ab{2} 相当于abb ab{1,3}相当于ab,abb,abbb
{n,}最少出现n次
? 出现0,1次 比如ab[cd]?相当于ab,abc,abd
++ 最少出现1次
* 不出现或者出现任意次,比如\^*c匹配 d,^d,^^d等