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 文字列を切り出す