c++ - QRegExp 只是不匹配!请告诉我我做错了什么

标签 c++ regex qt pattern-matching qregexp

我目前正在 Mac 上开发 Qt C++ 应用程序。 在整个应用程序中,我经常使用字符串模式匹配。 在使用 QRegExp 类时,我总是遇到一些我不理解的问题!!!

我的 QRegExp 看起来像这样:

QRegExp regEx("M|F\\dS\\d\\d.C\\d\\d", Qt::CaseInsensitive);

它应该匹配文件名中的模式,如“M1S02.C12”或“F4S14.C01”。 只要应匹配的输入文件名不包含此模式的一部分,这就很好用。

例如: 我的输入文件名为“testItem_abcd_M1S03.C02_grade3”

regEx.exactMatch("testItem_abcd_M1S03.C02_grade3");

返回假,而

regEx.indexIn("testItem_abcd_M1S03.C02_grade3");

返回7,即“m”在“item”中的位置。

谁能告诉我,我需要做什么才能使其正确匹配?

提前致谢, 吉他流

最佳答案

问题在于 | 限制为搜索 MF\dS\d\d.C\d\d。所以单个 m 项将匹配。

请尝试使用 [MF]\\dS\\d\\d\\.C\\d\\d"
(注意:也将 . 替换为 \\.,因为单个点匹配任何字符)

关于c++ - QRegExp 只是不匹配!请告诉我我做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008101/

相关文章:

c++ - 使用 va_copy 有什么意义?

java - 使用Java Regex解析xml文件

c++ - Qt 5 - 如何实时从子对话框发回数据

QT:我需要通过 QGraphicsScene 获取添加到 QGraphicsView 的图像坐标

c++ - QApplication::exec() 拒绝返回(在控制台程序中)

c++ - "return"带有 & 运算符但没有指针的多个值 : How does this work?

c++ - c++ 中的逻辑 AND + 赋值,安全吗?

c++ - 如何在不为 std::map 指定值的情况下添加有效键?

Javascript match() 正则表达式检测 URL 并链接到嵌入内容

python - 使用正则表达式来处理数学方程式中的嵌套括号?