我在下面写了代码
QString patternStr = "\\{\\\\@\\\\.+?\\\\.+?\\\\\\}";
QRegExp rx(patternStr);
QString content = "{\@\Bob\96\} {\@\Andy\1001484\} nice to see u";
bool match = rx.exactMatch(content);
if (match)
{
qDebug()<<"match";
}
else
{
qDebug()<<"not match "<<rx.errorString();
}
但得到错误&#34;错误的重复语法&#34;,有人可以提供一些帮助吗?谢谢!
答案 0 :(得分:0)
请注意,Qt中没有延迟量词,Qt正则表达式引擎无法正确解析+?
子模式。
因此,我建议在模式中使用否定字符类 [^\\]
:
[{]\\\\@\\\\[^\\\\]+\\\\[^\\\\]+\\\\[}]
我将{
和}
括在一个字符类中,这样您就不必转义其中任何一个。