[C#] Linqクエリで簡単に正規表現を利用する方法

2021-11-11


はじめに

今回は、Linqクエリで正規表現マッチングを実現するための簡単な方法の備忘録です。

Linqを利用した正規表現マッチング

using System.Linq;
using System.Text.RegularExpressions;

namespase LinqRegexTest
{
    class RegexTester
    {
        public static void Execute()
        {
            string[] keywords = {
                "Test(TM) SE Development",
                "Test Development"
            };

            var results = keywords.Select(x => x).Where(x => IsMatch(x, @"Test") == true);
            foreach(var r in results)
            {
                Console.WriteLine(r);
            }
        }

        public static bool IsMatch(this string target, string pattern)
        {
            var rx = new Regex(pattern);
            return rx.IsMatch(target);
        }
    }
}

Linqクエリの「Where」部分にて独自で用意したIsMatch関数を利用して、正規表現マッチングを実現させています。マッチすればTureを返し、ミスマッチの場合はFlaseを返します。
その結果をSelectしています。

最後に

簡単ですが、Linqクエリはよく使うので、少し応用してみました。

是非参考までに。