我是新来的正则表达式。最近我提出了一个将通配符模式转换为正则表达式的任务。这将用于检查文件路径是否与正则表达式匹配。将通配符模式转换为正则表达式
例如,如果我的模式是*.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
您可能也会尝试codereview.se –
我发现使用http://refiddle.com/对测试正则表达式非常有用。 – jussinen
好吧,我一直在测试我的表达式,但如果您有预感到您错过了某些东西或过度问题,测试可能会成为问题 –