restofwaterimpのぎじゅつMemo

SIerに所属。企画から運用まで幅広くやってます。C#中心に書いてます。

【C#】C#プログラミングのイディオム(10章)正規表現

前回の続き

restofwaterimp.hatenablog.com

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のメソッドなどを学ぶというのもありますが、 正規表現の読み方自体を覚えた方がいいという章でした。

つづく