Pages

2014/05/27

[C#] 正規表現で角括弧 [ ] の中身を取得

角括弧 [] は .Net Framework ではメタ文字として扱われるため、それ自体を対象にしたい場合はバックスラッシュ(\)でエスケープをしなければならない。

.NET Frameworkがサポートする正規表現クラスを徹底活用する ― (3/4) - @IT
http://www.atmarkit.co.jp/ait/articles/0304/12/news002_3.html

確実に角括弧の中に含まれている文字列を取得したい場合は以下のようにする。
var input = "テスト[[[あいうえお[Code=9999]テストテスト[Code=]]]";
var regex = new Regex(@"\[Code=(?.*?)\]");            
var match = regex.Match(input);
var result = match.Groups["value"].Value;
Console.WriteLine(result);

// Regex の定義が重要。クエッションマークの有無で結果がかなり異なってくる。

// @"\[Code=(?.*?)\]"
// 結果 : 9999

// @"\[Code=(?.*)\]"
// 結果 : 9999]テストテスト[Code=]]
Related Posts Plugin for WordPress, Blogger...