【C#】正規表現で一致した部分を取得する

C#の正規表現で、パターンに一致した部分を取得することをグループ化する、などと呼びます。この正規表現のある条件に一致した部分を取得する方法の紹介です。

確認環境

  • VisualStudio2019
  • C# 9.0(バージョン不問

名前空間

using System.Text.RegularExpressions;

使用するメソッド

Match result = Regex.Match(対称の文字列, 正規表現);
if(result.Success)
{
    // 条件に一致したときの処理
}

グループ化の指定

例えば14個の数字の並びを抽出する方法は以下の通り

(?<group>\d{14})

ダイヤモンドカッコで囲んだ中身がグループ化したときの変数名、外側の(?のカッコ内でくくった範囲内がグループ化される。

使用例

ファイル名から数字部分を取り出す場合以下のように記述する

Match m = Regex.Match("Sample_202204031025_log.log", @"(?<date>\d{14})");
if(m.Success)
{
    string str = m.Groups["date"].Value;
    // str=202204031025
}

以上