C#において、文字列から特定のパターンに一致する部分を抽出する方法として
正規表現を使うことがあります。
ここではReplaceメソッドを使用して正規表現を使い、文字列から数字だけを抽出する方法を解説します。
replaceの正規表現で数字だけ抽出する
正規表現を使って文字列から数字だけを抽出するには、Regexクラスを使用します。
以下の例では、正規表現 \D を使用して非数字の部分を空白に置換し、
数字だけを取り出しています。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string inputString = "abc123def456ghi";
string pattern = @"\D"; // 非数字を表す正規表現パターン
// 正規表現を使って非数字を空白に置換
string resultString = Regex.Replace(inputString, pattern, "");
Console.WriteLine($"Original String: {inputString}");
Console.WriteLine($"Extracted Numbers: {resultString}");
}
}
このコードでは、inputStringに含まれる非数字部分が正規表現 \D にマッチし、
それらが空白に置換されます。結果として、123456 という数字だけが抽出されます。
文字列からマイナス数字の抽出
以下のコードでは、正規表現パターン \D を使用して非数字の部分を空白に置換し、
その後に数字だけを抽出しています。
また、先頭がマイナスの場合も考慮しています。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string inputString = "abc-123def456ghi";
string pattern = @"[^-0-9]"; // マイナスと数字以外を表す正規表現パターン
// 正規表現を使って非数字・非マイナスを空白に置換
string resultString = Regex.Replace(inputString, pattern, "");
Console.WriteLine($"Original String: {inputString}");
Console.WriteLine($"Extracted Numbers: {resultString}");
}
}
このコードでは、正規表現パターン [^-0-9] を使用して、
マイナスと数字以外の部分を空白に置換しています。
結果として、-123456 というマイナスを含む数字が抽出されます。
広告
まとめ
この記事では、C#で正規表現を使って文字列から数字だけを抽出する方法について解説しました。
正規表現は柔軟で強力な文字列処理手法ですので、慣れておくとさまざまな場面で活用できます。