QRegExp只是不匹配!请告诉我我在做什么错
问题描述:
我目前正在研究Mac上的Qt C++应用程序。 在整个应用程序中,我使用的字符串模式匹配非常频繁。 使用QRegExp类时,我一直遇到一些我只是不明白的东西!!!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");
返回FALSE,而
regEx.indexIn("testItem_abcd_M1S03.C02_grade3");
返回图7,这是在“项目的 “m” 的位置”。
有人可以告诉我,我需要做什么才能使它匹配吗?
由于提前, guitarflow
答
的问题是,|
限制,以搜索任何M
或F\dS\d\d.C\d\d
。所以物品的瑕疵将会匹配。
尝试"[MF]\\dS\\d\\d\\.C\\d\\d"
。
(注意:也可用.
替换为\\.
,因为单个点匹配任何字符)
'[MF] ...'是写这个字符类的正确方法。否则,文字'|'也将在这个位置匹配。 –
非常感谢!奇迹般有效 !! – guitarflow
@Tim Pietzcker没有想到...更新了陈述 –