C#で正規表現を使って文字列を置換する方法

正規表現を使った文字列の置換

C#で正規表現を使って文字列を置換したい場合はReplaceメソッドを使って次のような感じにします。

string s = "abc123def456";

Regex re = new Regex(@"[a-z]+");
string result = re.Replace(s, "-");

Debug.Log(result);

実行結果

-123-456

置換する文字列を関数で指定する方法

置換する文字列を細かく制御したい場合は関数を使って置換する文字列を指定することもできます。

string s = "abc123def456";

Regex re = new Regex(@"([a-z]+)");
string result = re.Replace(s, (Match m) => m.Groups[1].Value.ToUpper());

Debug.Log(result);

実行結果

ABC123DEF456

※関数はMatchを引数にとってstringを返すものです。

リンク

Regex.Replace Method (System.Text.RegularExpressions) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.replace?view=net-6.0

MatchEvaluator Delegate (System.Text.RegularExpressions) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.matchevaluator?view=net-6.0

関連記事

正規表現で文字列を分割したい場合はRegex.Split
C#で正規表現で文字列を分割したい場合はRegex.Splitが便利です。使い方は次のような感じです。 数字で分割するサンプル using System; using System.Text.RegularExpressions; public class Example1 { static public void Main () { string pattern ...

C#のcharを大文字・小文字に変換する方法
C#のstringを大文字・小文字に変換したい場合はToLower/ToUpperが使えます。 string s; // 小文字に変換 s.ToLower(); // 大文字に変換 s.ToUpper(); そこで、charを大文字・小文字に変換したい場合に何か簡単な方法がないか調べてみたところChar.ToLower/Char.ToUpperというのが便利みたいです。 使...

C#で配列char[]をstringに変換する方法
C#でcharの配列をstringに変換する方法を調べてみたところ、次の2つが使い易そうな感じでした。 new stringを使う方法 char[] array = { 'a', 'b', 'c', 'd', 'e' }; string s = new string(array); Console.WriteLine(s); 実行結界 abcde stri...

C#で文字列の分割
C#ではSplitというメソッドを使うことで簡単に文字列の分割ができます。 使い方は次のような感じです。 コンマ「,」かハイフン「-」で分割 using System; class Example1 { static public void Main() { string str = "one,two-three"; char[] sep = { '...

C#で数値を文字列に変換したり文字列を数値に変換したりする方法
C#で数値を文字列に変換したり文字列を数値に変換したりする方法のまとめ。 数値 ⇒ 文字列の変換 数値から文字列への変換にはToString()が使えます。 サンプルコード using System; public class Example1 { public static void Main() { int value1 = 123; flo...

C#で使える書式指定についての簡単なまとめ
C言語のprintf関数で使えるような書式をC#でも使いたいと思って簡単に調べてみました。 int型 サンプル int value = 1234; // 普通に表示 Console.WriteLine($"{value}"); // 8文字分のスペースに右揃えで表示 Console.WriteLine($"{value,8}"); // 8文字分のスペースに左揃えで表示 ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です