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 with
look-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。