正则表达式C ++ Qt

时间:2011-08-02 04:06:07

标签: 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;

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

2 个答案:

答案 0 :(得分:9)

你的正则表达式中没有任何捕获的parens所以没有捕获组1.请尝试这样做:

QRegExp rx("\\b(test)\\b");

答案 1 :(得分:1)

rx.cap(1)替换为rx.cap(0) 整场比赛的索引为0。