Regex QT正则表达式获取括号之间的内容
我想拆分一个表达式,在括号中获取内容: 表达式可以如下所示:Regex QT正则表达式获取括号之间的内容,regex,qt5.5,Regex,Qt5.5,我想拆分一个表达式,在括号中获取内容: 表达式可以如下所示: (center:SCREEN)-(25%:SCREEN_WIDTH) QStringList lstTerms = strProcessed.split("/\(([^)]+)\)/") 到目前为止,我的代码如下所示: (center:SCREEN)-(25%:SCREEN_WIDTH) QStringList lstTerms = strProcessed.split("/\(([^)]+)\)
(center:SCREEN)-(25%:SCREEN_WIDTH)
QStringList lstTerms = strProcessed.split("/\(([^)]+)\)/")
到目前为止,我的代码如下所示:
(center:SCREEN)-(25%:SCREEN_WIDTH)
QStringList lstTerms = strProcessed.split("/\(([^)]+)\)/")
但这只会带来:
(center:SCREEN)-(25%:SCREEN_WIDTH)
在上面的示例中,我希望数组包含两个元素:
[0] center:SCREEN
[1] 25%:SCREEN_WIDTH
谢谢@noob,最后的例行节目:
QRegularExpression regex("(?<=\\()[^)]*(?=\\))");
QRegularExpressionMatchIterator matches = regex.globalMatch(strProcessed);
QStringList slstTerms;
while( matches.hasNext() ) {
QRegularExpressionMatch match = matches.next();
if (match.hasMatch()) {
slstTerms.append(match.captured(0));
}
}
QRegularExpression regex((?Try withlook-around
assertions。使用g
Regex:(?您至少可以尝试“\\([^()]+)\\)”
将模式限制为与内部的内容匹配(…)
。顺便说一句,这是一个匹配模式,而不是拆分模式。您不需要任何正则表达式分隔符,反斜杠必须加倍。谢谢,但是该表达式只返回1个结果,与我已经发布的结果相同。请尝试QRegExp rx(\\([^()]+)\\);QStringList lsterms;int pos;while((pos=rx.indexIn(str,pos))!=-1{lsterms刚刚尝试了这个,什么也没有返回。使用QRegularExpression regex(\\([^()]+)\\);
和slstTerms.append(match.captured(1));
您可以使用我建议的更简单有效的regex。