最近の変更サイトマップ

C#でファイルパスの円記号を自動エスケープ

WindowsのファイルパスをRegexに渡す場合、円記号をエスケープシーケンスする必要があるが、ファイルパスが固定文字列じゃなかったりstring変数に入ってたりすると、さぁ大変。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex(path); // エラー!(パスの円記号のエスケープはどうしよう…)

C#の事だから良い感じにエスケープしてくれる機能があるに違いないと思って調べてみたら、案の定Regex.Escapeっていうそのまんまなメソッドがあった。

string path = @"C:\path\to\file.txt";
Regex matcher = new Regex( Regex.Escape(path) ); // C:\\path\\to\\file\.txt になる!

円記号だけではなく、正規表現のメタ文字を全部エスケープしてくれる。なので、上記例では拡張子のピリオドもエスケープされる。

便利便利。

Comments




blog/2015/2015-04-13.txt · 最終更新: 2015-04-13 11:43 by Decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0