私は正規表現が初めてです。最近、ワイルドカード パターンを正規表現に変換するタスクを提示されました。これは、ファイル パスが正規表現と一致するかどうかを確認するために使用されます。
たとえば、私のパターンが *.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