我目前正在 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”中的位置。
谁能告诉我,我需要做什么才能使其正确匹配?
提前致谢, 吉他流
最佳答案
问题在于 |
限制为搜索 M
或 F\dS\d\d.C\d\d
。所以单个 m 项将匹配。
请尝试使用 [MF]\\dS\\d\\d\\.C\\d\\d"
。
(注意:也将 .
替换为 \\.
,因为单个点匹配任何字符)
关于c++ - QRegExp 只是不匹配!请告诉我我做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008101/