正则表达式C++ Qt

Dav*_*e Z 7 c++ regex qt

QRegExp rx("\\btest\\b");
rx.indexIn("this is a test string");
QString captured = rx.cap(1);
std::string capturedstr = captured.toUtf8().constData();
std::cout << capturedstr;
Run Code Online (Sandbox Code Playgroud)

我希望上面打印出测试并匹配字符串中的单词test,但它似乎没有这样做.谁能在这里解决一些问题?使用QT.

Asa*_*aph 9

您的正则表达式中没有任何捕获的parens,因此没有捕获组1.请尝试以下操作:

QRegExp rx("\\b(test)\\b");
Run Code Online (Sandbox Code Playgroud)

  • ...或使用`rx.cap(0)`来访问整个比赛. (3认同)