QT学习笔记-37.QRegex和正则表达式

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等

猜你喜欢

转载自blog.csdn.net/u010312937/article/details/102666900
今日推荐