前回の続き
10章は正規表現
Findメソッドでゴリゴリ書いてもいいけど、Regexを利用すれば簡単だし、わかりやすいよという章。
Macでコーディングだとエスケープシーケンスが ¥ではなく\なので、注意です。(バックスラッシュ)
指定した文字列が含まれているか
/*静的メソッド*/ var text = "private List<string> results = new List<string>();"; bool isMatch = Regex.IsMatch(text, @"List<\w+>"); if (isMatch) { Console.WriteLine("Find"); } else{ Console.WriteLine("Not Found"); } /*インスタンスメソッド*/ var regex = new Regex(@"List<\w+>"); bool isMatch2 = regex.IsMatch(text); if (isMatch2) { Console.WriteLine("Find"); } else { Console.WriteLine("Not Found"); }
また、リテラルを逐語的リテラル@をつけた方がよいです。 つけないとエスケープシーケンスが¥¥¥とかになって、 「あれ?何書いていたんだっけ?」になりかねないので。
正規表現で利用できる文字自体は色々なサイトに公開されているので、そこをご参考あれ。
どこと一致する?
前方一致 ^
後方一致 $
完全一致 ^ と $
を利用することで、一致条件を変更可能である。
c#自体では、Regex やReplace、Splitのメソッドなどを学ぶというのもありますが、 正規表現の読み方自体を覚えた方がいいという章でした。
つづく
実戦で役立つ C#プログラミングのイディオム/定石&パターン
posted with amazlet at 18.10.07