C#で正規表現を使用して文字列を抽出する方法を紹介します。
C#で正規表現を使用して文字列を抽出する方法
①System.Text.RegularExpressions 名前空間をインポートします。
using System.Text.RegularExpressions;
②正規表現パターンを作成します。抽出したい文字列のパターンを指定します。
string pattern = @"(\d{2})-(\d{2})-(\d{4})";
この例では、(\d{2})-(\d{2})-(\d{4}) という正規表現パターンを使用して、”dd-mm-yyyy” 形式の日付を抽出することを想定しています。
③正規表現を使用して文字列から抽出します。
string input = "Today's date is 25-12-2023.";
Match match = Regex.Match(input, pattern);
if (match.Success)
{
string extractedString = match.Value;
Console.WriteLine(extractedString); // 出力: "25-12-2023"
}
Regex.Match メソッドを使用して、指定した正規表現パターンに一致する部分文字列を検索します。match.Success が true の場合、一致した部分文字列が見つかったことを意味します。抽出したい文字列は match.Value で取得できます。
④必要に応じて、グループ化された部分文字列を個別に取得します。
if (match.Success)
{
string day = match.Groups[1].Value;
string month = match.Groups[2].Value;
string year = match.Groups[3].Value;
Console.WriteLine(day); // 出力: "25"
Console.WriteLine(month); // 出力: "12"
Console.WriteLine(year); // 出力: "2023"
}
もし正規表現パターン内でグループ化した部分がある場合、match.Groups コレクションを使用してそれぞれのグループにアクセスすることができます。
このように、正規表現を使用することで柔軟な文字列の抽出が可能です。正規表現パターンを適切に設定して、目的の文字列を抽出してください。
C#で正規表現を使用して文字列を置換する方法
using System.Text.RegularExpressions;
string originalString = "Hello, world!";
string pattern = @"\bworld\b";
string replacement = "John";
string replacedString = Regex.Replace(originalString, pattern, replacement);
Console.WriteLine(replacedString); // 出力: "Hello, John!"
この例では、Regex.Replace メソッドを使用して正規表現パターン \bworld\b に一致する部分文字列を “John” に置換しています。\b は単語の境界を表します。
C#で正規表現を使用して文字列を比較する方法
using System.Text.RegularExpressions;
string string1 = "apple";
string string2 = "banana";
string pattern = @"^a";
bool isMatch1 = Regex.IsMatch(string1, pattern);
bool isMatch2 = Regex.IsMatch(string2, pattern);
if (isMatch1 && isMatch2)
{
Console.WriteLine("Both strings match the pattern");
}
else if (isMatch1)
{
Console.WriteLine("Only string1 matches the pattern");
}
else if (isMatch2)
{
Console.WriteLine("Only string2 matches the pattern");
}
else
{
Console.WriteLine("Neither string matches the pattern");
}
この例では、Regex.IsMatch メソッドを使用して正規表現パターン ^a に各文字列が一致するかどうかを判定しています。^ は文字列の先頭を表します。
C#で正規表現を使用して文字列を分割する方法
using System.Text.RegularExpressions;
string originalString = "apple,banana,orange";
string pattern = @",";
string[] parts = Regex.Split(originalString, pattern);
foreach (string part in parts)
{
Console.WriteLine(part);
}
この例では、Regex.Split メソッドを使用して正規表現パターン , で文字列を分割しています。分割された部分は配列 parts に格納され、foreach ループでそれぞれの部分を表示しています。
これらの方法を使用することで、C#で文字列の正規表現に基づく置換、比較、および分割を行うことができます。必要に応じて正規表現パターンを適切に設定してください。