VB.NET Replace 文字列を置き換えるサンプル

VB.NETのReplaceで文字列を置き換えるサンプルです。

目次

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

Replaceとは

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

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

Module Module1
	Sub Main()
		Dim str1 As String = "あいうーあいう"

		'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う
	End Sub
End Module

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

以下は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 Function Replace(oldChar As Char, newChar As Char) As [String]

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

Module Module1
	Sub Main()

		Dim str1 As String = "あああーあああ"

		Console.WriteLine(str1.Replace("あ"c, "A"c)) 'AAAーAAA

	End Sub
End Module

6行目は、Replaceメソッドで文字「あ」に一致した全てを文字「A」に置換しています。
文字のあとの「c」はChar型を意味します。

以下は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つめの引数に空文字を指定することで文字の削除に使用できます。

Module Module1
	Sub Main()
		' 指定の文字(う)を削除する
		Dim str1 As String = "あいうえお"
		Console.WriteLine(str1.Replace("う", "")) 'あいえお

		' 半角空白を削除する(△あ△い△う△ +1△△)
		Dim str2 As String = " あ い う +1  "
		Console.WriteLine(str2.Replace(" ", "")) 'あいう+1
	End Sub
End Module

 

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

Imports System.Text.RegularExpressions
Module Module1
	Sub Main()
		Dim str1 As String = "あいうーあいう"
		Dim reg1 As New Regex("[あう]") '正規表現 「あ」または「う」
		Console.WriteLine(reg1.Replace(str1, "a")) 'aいaーaいa

		Dim str2 As String = "--12345--"
		Dim reg2 As New Regex("[0-9]{5}") '正規表現 0から9の5桁
		Console.WriteLine(reg2.Replace(str2, "*****")) '--*****--

		Dim str3 As String = "--123451--" '数値が6桁
		Dim reg3 As New Regex("[0-9]{5}")
		Console.WriteLine(reg3.Replace(str3, "*****")) '--*****1--

		Dim str4 As String = "--1234512345--" '2回マッチするので注意
		Dim reg4 As New Regex("[0-9]{5}")
		Console.WriteLine(reg4.Replace(str4, "*****")) '--**********--
	End Sub
End Module

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

 

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

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

Imports System.Text.RegularExpressions
Module Module1
	Sub Main()
		Dim str1 As String = "あいうーあいう"
		Dim reg1 As New Regex("[あう]") '正規表現 「あ」または「う」
		Console.WriteLine(reg1.Replace(str1, "a", 1)) 'aいうーあいう

		Dim str4 As String = "--1234512345--" '最初のマッチのみを置換
		Dim reg4 As New Regex("[0-9]{5}")
		Console.WriteLine(reg4.Replace(str4, "*****", 1)) '--*****12345--
	End Sub
End Module

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

関連の記事

VB.NET Split 文字列を分割して配列にする

△上に戻る