C# Replace 文字列を置き換えるサンプル

C#のReplaceで文字列を置き換えるサンプルです。

目次

サンプル Replaceとは
  文字列を置き換える(Replace)
  1文字単位で全て置き換える(Replace)
  指定した文字や空白を削除する(Replace)
  正規表現で文字を置き換える(Replace)
  最初にマッチした文字を置き換える(Replace)

Replaceとは

public string Replace (置換前の文字列, 置換後の文字列)
  • 1つめの引数の文字列を2つめの引数の文字列に置き換えます。
  • 正規表現も使用できます。
  • Stringクラスのメソッドです。

文字列を置き換える(Replace)

using System;
class Test1
{
	static void Main()
	{
		var str1 = "あいうーあいう";
		//2つめの引数が1文字
		Console.WriteLine(str1.Replace("あ", "A")); //AいうーAいう
		Console.WriteLine(str1.Replace("あい", "A")); //AうーAう
		//2つめの引数が複数文字
		Console.WriteLine(str1.Replace("あ", "AB")); //ABいうーABいう
		Console.WriteLine(str1.Replace("あい", "AB")); //ABうーABう
	}
}

一致した文字を全て置き換えます。

以下はMicrosoftのReplace(String, String)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.replace?view=netframework-4.7.2#System_String_Replace_System_String_System_String_

1文字単位で全て置き換える(Replace)

public string Replace (char 置換前の文字, char 置換後の文字)

Replaceメソッドの引数がchar型の場合、指定した1文字を別の1文字に全て置き換えます。

using System;
class Test1
{
	static void Main()
	{
		var str1 = "あああーあああ";

		Console.WriteLine(str1.Replace('あ', 'A')); //AAAーAAA
	}
}

8行目は、シングルコーテーション(')で文字を括っています。

以下はMicrosoftのReplace(Char, Char)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.replace?view=netframework-4.7.2#System_String_Replace_System_Char_System_Char_

指定した文字や空白を削除する(Replace)

Replaceの2つめの引数に空文字を指定することで文字の削除に使用できます。

using System;
class Test1
{
	static void Main()
	{
		// 指定の文字(う)を削除する(△あいう△+1△△)
		var str1 = "あいうえお";
		Console.WriteLine(str1.Replace("う", "")); //あいえお

		// 半角空白を削除する(△あいう△+1△△)
		var str2 = " あ い う +1  ";
		Console.WriteLine(str2.Replace(" ", "")); //あいう+1
		Console.WriteLine(str2.Replace(" ", "").Length); //5
	}
}

 

正規表現で文字を置き換える(Replace)

using System;
using System.Text.RegularExpressions;
class Test1
{
	static void Main()
	{
		var str1 = "あいうーあいう";
		Regex reg1 = new Regex("[あう]");//正規表現 「あ」または「う」
		Console.WriteLine(reg1.Replace(str1, "a")); //aいaーaいa

		var str2 = "--12345--";
		Regex reg2 = new Regex("[0-9]{5}");//正規表現 0から9の5桁
		Console.WriteLine(reg2.Replace(str2, "*****")); //--*****--

		var str3 = "--123451--"; //数値が6桁
		Regex reg3 = new Regex("[0-9]{5}");
		Console.WriteLine(reg3.Replace(str3, "*****")); //--*****1--

		var str4 = "--1234512345--"; //2回マッチするので注意
		Regex reg4 = new Regex("[0-9]{5}");
		Console.WriteLine(reg4.Replace(str4, "*****")); //--**********--
	}
}

[あう]は、「あ」または「う」を意味する正規表現です。
[0-9]{5}は、数値0から9の5桁を意味する正規表現です。

最初にマッチした文字を置き換える(Replace)

Replaceは3つめの引数に置換する回数の数値を指定します。正規表現の使用が必要です。

using System;
using System.Text.RegularExpressions;
class Test1
{
	static void Main()
	{
		var str1 = "あいうーあいう";
		Regex reg1 = new Regex("[あう]");//正規表現 「あ」または「う」
		Console.WriteLine(reg1.Replace(str1, "a",1)); //aいうーあいう

		var str4 = "--1234512345--"; //最初のマッチのみを置換
		Regex reg4 = new Regex("[0-9]{5}");
		Console.WriteLine(reg4.Replace(str4,"*****",1));//--*****12345--
	}
}

3つめの引数に1を指定しているので1回のみ置換します。

関連の記事

C# Split 文字列を分割して配列にする
C# IndexOf 文字列の位置を取得する
C# Substring 文字列を切り出す

△上に戻る