CAtlRegExp 格式的正则表达式不起作用?
Regular Expression in CAtlRegExp format not working?
我创建了一个正则表达式来捕获 Microsoft Office 可执行文件,如下所示:
.*(\Microsoft Office\Office)(\d){1,2}(\)(WINWORD.EXE|EXCEL.EXE|POWERPNT.EXE|MSACCESS.EXE|OUTLOOK.EXE|VISIO.EXE|WINPROJ.EXE)$
反正我用的软件只支持正则表达式的CAtlRegExp风格,上面的不行
我正在查看以下文章以供参考并使用该工具测试我的正则表达式:
https://www.codeproject.com/Articles/13320/Using-Regular-Expressions-in-MFC
示例路径是:
C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
有人可以帮忙吗?
谢谢。
看来你可以使用
.*\Microsoft Office\Office\d\d?\((WINWORD)|(EXCEL)|(POWERPNT)|(MSACCESS)|(OUTLOOK)|(VISIO)|(WINPROJ))\.EXE$
这里的要点是 (...)
中的所有替代项也必须用括号括起来,并且正则表达式风格不支持有限的(间隔)量词,并且 {...}
定义了一个 使用从零开始的 ID 捕获组。 \d\d?
匹配 1 或 2 个数字。见 docs you refer to:
You can note that the syntax is not exactly the same as in Perl. For example, the grouping operator is {}, while in Perl it is (), and it doesn't have the {n} (match exactly n times) as in the Perl syntax
另请注意,文字点应使用 \.
定义,最好在所有分组选项后仅使用一个 \.EXE
。
我创建了一个正则表达式来捕获 Microsoft Office 可执行文件,如下所示:
.*(\Microsoft Office\Office)(\d){1,2}(\)(WINWORD.EXE|EXCEL.EXE|POWERPNT.EXE|MSACCESS.EXE|OUTLOOK.EXE|VISIO.EXE|WINPROJ.EXE)$
反正我用的软件只支持正则表达式的CAtlRegExp风格,上面的不行
我正在查看以下文章以供参考并使用该工具测试我的正则表达式: https://www.codeproject.com/Articles/13320/Using-Regular-Expressions-in-MFC
示例路径是:
C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE
有人可以帮忙吗?
谢谢。
看来你可以使用
.*\Microsoft Office\Office\d\d?\((WINWORD)|(EXCEL)|(POWERPNT)|(MSACCESS)|(OUTLOOK)|(VISIO)|(WINPROJ))\.EXE$
这里的要点是 (...)
中的所有替代项也必须用括号括起来,并且正则表达式风格不支持有限的(间隔)量词,并且 {...}
定义了一个 使用从零开始的 ID 捕获组。 \d\d?
匹配 1 或 2 个数字。见 docs you refer to:
You can note that the syntax is not exactly the same as in Perl. For example, the grouping operator is {}, while in Perl it is (), and it doesn't have the {n} (match exactly n times) as in the Perl syntax
另请注意,文字点应使用 \.
定义,最好在所有分组选项后仅使用一个 \.EXE
。