C++ Qt中的正则表达式与它应该使用的字符串不匹配

C++ Qt中的正则表达式与它应该使用的字符串不匹配,c++,regex,qt,C++,Regex,Qt,所以我有一个函数,我们把它叫做getMatch。我编写了一个正则表达式来匹配它接收到的字符串,但是Qt正则表达式引擎没有像我期望的那样匹配它 为了便于演示,下面是一些代码: bool getMatch() { QString item = "BitwiseAND(Value, Mask)"; QRegExp rx("\\w+\\([\\w+,\\s]+?\\)", Qt::CaseInsensitive); return rx.exactMatch(item); }

所以我有一个函数,我们把它叫做getMatch。我编写了一个正则表达式来匹配它接收到的字符串,但是Qt正则表达式引擎没有像我期望的那样匹配它

为了便于演示,下面是一些代码:

bool getMatch()
{
    QString item = "BitwiseAND(Value, Mask)";
    QRegExp rx("\\w+\\([\\w+,\\s]+?\\)", Qt::CaseInsensitive);

    return rx.exactMatch(item);
}
每次都应该返回true,但返回false

我已经在在线测试员中测试了regex,应该可以了。

我想你想要什么:

\\w+\\(\\w+(?:,\\s)?)+\\)

您的正则表达式使用的是
[
而不是
),但这是一个字符类,而您所做的只是分组和量化。

我想您想要的是:

\\w+\\(\\w+(?:,\\s)?)+\\)

您的正则表达式使用的是
[
而不是
),但这是一个字符类,而您所做的只是分组和量化