我是新來的正則表達式。最近我提出了一個將通配符模式轉換爲正則表達式的任務。這將用於檢查文件路徑是否與正則表達式匹配。將通配符模式轉換爲正則表達式
例如,如果我的模式是*.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
好吧,我一直在測試我的表達式,但如果您有預感到您錯過了某些東西或過度問題,測試可能會成爲問題 –