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回のみ置換します。
関連の記事