QRegExp麻烦匹配模式

时间:2014-01-20 20:11:22

标签: c++ regex qt

我试图在回调函数中使用QRegExp匹配字符串。我正在使用C++ Qt的实施方式。我已经写了表格的正则表达式:Atmospheres.(\\d+).(latitude|longitude|radius|path)并验证了它here

问题是,将正则表达式与QRegExp匹配始终返回-1,不匹配。

以下是一些代码:

QString name = "Atmospheres.1.latitude";
QRegExp regex("Atmospheres.(\\d+).(latitude|longitude|radius|path)");

int pos = 0;
regex.indexIn(name, pos); 

以上行始终返回-1。有什么建议?谢谢。

1 个答案:

答案 0 :(得分:2)

您确定要运行此确切代码吗?它适用于我:

#include <iostream>
#include <QString>
#include <QRegExp>

int main()
{
  QString name = "Atmospheres.1.latitude";
  QRegExp regex("Atmospheres.(\\d+).(latitude|longitude|radius|path)");
  int pos = regex.indexIn(name, 0);
  std::cerr << QT_VERSION_STR << ": " << pos << std::endl;
  return 0;
}

执行此操作会产生:

5.2.0: 0