我是正则表达式的新手。最近,我收到了一项将通配符模式转换为正则表达式的任务。这将用于检查文件路径是否与正则表达式匹配。
例如,如果我的模式是 *.jpg;*.png;*.bmp
我能够通过拆分分号、转义字符串并将转义的*
替换为.*
String regex = "((?i)" + Regex.Escape(extension).Replace("\\*", ".*") + "$)";
所以我得到的正则表达式将用于 jpg ((?i).*\.jpg)$)
Thien 我使用 OR 运算符组合我的所有扩展。
因此,我对这个例子的最终表达将是:
((?i).*\.jpg)$)|((?i).*\.png)$)|((?i).*\.bmp)$)
我已经对其进行了测试并且它有效但我不确定是否应该添加或删除任何表达式以涵盖其他情况,或者是否有更好的格式
另请记住,我可能会遇到通配符*myfile.jpg
,例如它应该匹配名称以 myfile.jpg 结尾的所有文件
我可以遇到像这样的模式*myfile.jpg;*.png;*.bmp