C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で正規表現を使ったパターンマッチングの基本と実装例

正規表現(Regular Expression)とは、入力テキストに対して照合を行うためのパターンのことです。パターンは、1つ以上の文字リテラル、演算子、または構成要素から構成されます。

C#では System.Text.RegularExpressions 名前空間の Regex クラスを利用することで、文字列の中から特定のパターンに一致する部分を簡単に抽出できます。

ここでは、正規表現を使って「M」で始まる単語を抽出して表示する例を見ていきましょう。

サンプルコード

using System;
using System.Text.RegularExpressions;

namespace Demo {
    class Program {
        private static void showMatch(string text, string expr) {
            Console.WriteLine("The Expression: " + expr);
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc) {
                Console.WriteLine(m);
            }
        }

        static void Main(string[] args) {
            string str = "Mandatory requirements for a Cricket Match Event!";

            Console.WriteLine("Matching words that start with 'M': ");
            showMatch(str, @"\bM\S*");
            Console.ReadKey();
        }
    }
}

実行結果

Matching words that start with 'M':
The Expression: \bM\S*
Mandatory
Match

コードの解説

まず、検索対象となる文字列を用意します。

string str = "Mandatory requirements for a Cricket Match Event!";

この文字列には「Mandatory」「Match」という2つの単語が「M」で始まっています。これらすべての単語を抽出するために、次の正規表現パターンを使用しました。

@"\bM\S*"

このパターンを分解すると、以下のような意味になります。

  • \b:単語の境界(ワードバウンダリ)を表します。単語の先頭に一致させるために使用します。
  • M:文字「M」そのものに一致します。
  • \S*:空白以外の任意の文字が0回以上続くことを表します。つまり、「M」に続く単語の残りの部分に一致します。

Regex.Matches メソッドは、指定した入力文字列内でパターンに一致するすべての箇所を MatchCollection として返します。あとは foreach ループで各一致結果を取り出し、コンソールに出力しています。

このように、正規表現を活用すれば、複雑な文字列検索やフィルタリング処理をわずか数行のコードで実現できます。メールアドレスの形式チェックや電話番号の抽出など、さまざまな場面で応用できるので、ぜひマスターしておきましょう。

  1. Pythonの正規表現を使ったパターンマッチング入門

    正規表現とは? 実際のプログラミングの世界では、文字列の解析処理はほとんどの場合、正規表現によって行われています。Pythonにおける正規表現とは、テキストのパターンを照合(マッチング)するための手法です。 Pythonには標準で「re」モジュールが付属しており、これによって正規表現の機能が提供されます。追加のインストールは不要です。 Pythonでの正規表現検索は、一般的に次のように記述します。 match = re.search(pattern, string) re.search()メソッドは、「正規表現パターン」と「検索対象の文字列」の2つの引数を受け取り、その文字列の中からパターン

  2. Rubyのパターンマッチング入門:case/in構文でコードを読みやすくする

    Rubyにおけるパターンマッチングについて、その仕組みとコードの可読性向上への活用方法を簡単に見ていきましょう。数年前の私のように、これを正規表現(Regex)のパターンマッチングと混同している方もいるかもしれません。「pattern matching」だけでGoogle検索すると、正規表現に近い定義の記事が上位に出てくることさえあります。正式には、パターンマッチングとは、あるデータ(文字列、トークンの列、タプルなど何でも)を別のデータと照合して検証するプロセスのことです。プログラミングにおいては、言語の能力に応じて、以下のようなことが可能になります。期待されるデータ型とのマッチング期待される