关于qt 正则表达式的有关问题
关于qt 正则表达式的问题
有下面一段正则语句的代码:
QString str3 = "One Eric another Eirik, and an Ericsson. "
"How many Eiriks, Eric?";
QRegExp rx2("\\bEi?ri[ck]\\b");
int pos = 0;
int count = 0;
while (pos >= 0) {
pos = rx2.indexIn(str3, pos);
if (pos >= 0) {
++pos; // 从匹配的字符的下一个字符开始匹配
++count; // 匹配到的数目加1
}
}
qDebug() << "count: " << count;
我没看懂红色标注的语句,一些简单的正则语句还能看懂,这个就不理解了,希望高手详细解答下,谢谢了啊。
------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b");
\\b表示单词的界限,?表示可以出现0次或是1次,这个正则应该表示匹配的是如下几个单词中的一个:
Eric、Eiric、Eirik、Erik
具体参考QT的totorial吧,我没查文档
------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b");
? 表示 可以有或者没有
[] 表示里面的可选
有下面一段正则语句的代码:
QString str3 = "One Eric another Eirik, and an Ericsson. "
"How many Eiriks, Eric?";
QRegExp rx2("\\bEi?ri[ck]\\b");
int pos = 0;
int count = 0;
while (pos >= 0) {
pos = rx2.indexIn(str3, pos);
if (pos >= 0) {
++pos; // 从匹配的字符的下一个字符开始匹配
++count; // 匹配到的数目加1
}
}
qDebug() << "count: " << count;
我没看懂红色标注的语句,一些简单的正则语句还能看懂,这个就不理解了,希望高手详细解答下,谢谢了啊。
正则表达式
------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b");
\\b表示单词的界限,?表示可以出现0次或是1次,这个正则应该表示匹配的是如下几个单词中的一个:
Eric、Eiric、Eirik、Erik
具体参考QT的totorial吧,我没查文档
------解决方案--------------------
QRegExp rx2("\\bEi?ri[ck]\\b");
? 表示 可以有或者没有
[] 表示里面的可选