C#における正規表現の使い方と使用例

C#

正規表現は、テキストデータから特定のパターンに一致する文字列を検索、置換、または抽出するための強力な機能です。この記事では、C#で正規表現による文字列の処理について、いくつかサンプルを紹介します。

C#における正規表現の使い方

C#では、System.Text.RegularExpressions 名前空間内にある Regex クラスを利用して正規表現を扱います。基本的な使い方は以下の通りです。

using System;
using System.Text.RegularExpressions;  // ★正規表現の使用に必要

class Program
{
    static void Main()
    {
        string input = @"処理対象の文字列";
        string pattern = @"正規表現パターン";

        // 正規表現のパターンマッチを実施
        Match match = Regex.Match(input, pattern);

        // マッチする文字列がある場合
        if (match.Success)
        {
            Console.WriteLine("一致した文字列: " + match.Value);
        }
    }
}

基本的な正規表現パターンの例

  1. アルファベット
    • 大文字のみ: [A-Z]
    • 小文字のみ: [a-z]
    • 大文字と小文字: [A-Za-z]
  2. 数字
    • [0-9] または \d
  3. 文字
    • \w (アルファベット、数字、アンダースコア_などの1文字にマッチ)
  4. スペース
    • \s (スペース、タブ、改行などの空白文字にマッチ)
  5. タブ
    • \t
  6. []で指定した文字にマッチ
    • [abc]abc のいずれかにマッチ)
    • [^abc]abc 以外の文字にマッチ)

サンプルコード:4桁の数字を取り出す

以下は、文字列の中に含まれる4桁の数字を取り出すサンプルコードです。

using System;
using System.IO;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string input = @"Today is January 24, 2024.";
        string pattern = @"\d\d\d\d"; // 4桁の数字にマッチするパターン。\d{4}と書いても良い

        // 正規表現のパターンマッチを実施(1)
        Match match = Regex.Match(input, pattern);

        // パターンにマッチする文字列がある場合(2)
        if (match.Success)
        {
            // 見つかった文字を表示(3)
            Console.WriteLine("見つかった数字: " + match.Value); // "2024" が出力される
        }
    }
}

実行結果

見つかった数字: 2024
続行するには何かキーを押してください . . .

(1)Regex.Matchメソッドで、正規表現を使用した文字列のパターンマッチを行うことができます。この例では、変数patternに格納された正規表現パターンで、入力文字列のパターンマッチを行います。パターンマッチの結果はMatchオブジェクトに返されます。

(2)MatchオブジェクトのSuccessプロパティで、パターンマッチが成功したかどうかを判定します。trueの場合は、入力文字列へのパターンマッチが成功したことを示します。

(3)パターンにマッチした文字列は、MatchオブジェクトのValueプロパティで取得可能です。

まとめ

本記事では、C#における正規表現の使い方の基本について紹介しました。

正規表現は、多くのプログラミング言語やツールでサポートされています。正規表現を一度学んでしまえば、異なる環境でも同様の方法でテキスト処理を行うことができ、小さな投資で大きなリターンが得られるスキルと言えます。

タイトルとURLをコピーしました