.Netでは、正規表現のクラスはRegexです。
簡単な例ですが、サンプルではa.cにマッチする文字列を検索しています。
「.」は、改行以外の任意の1文字にマッチします。
aBcや、a/cにマッチしますが、abbcやa2345cにはマッチしません。
正規表現ではマッチする文字数も指定出来ます。
検索を行わせるメソッドは、一つだけならMatchで、マッチするところ全部ならMatchesです。
一つのマッチごとに、結果の変数、例えばm01なら、m01.Valueでマッチしたか所を取得できます。
マッチしたか所の置き換えも難しくなくて、サンプルでは正規表現r01のメソッドで、Replace(TEXT01, "<b>ABC</b>")と指定すると、マッチしたか所が全部<b>ABC</b>となります。
C#
string TEXT01 = "aBcDeFgabcdEfG";
Regex r01 = new Regex("a.c");
//マッチするものがあったかどうかだけをチェックするなら、IsMatchメソッドが便利です。
if (r01.IsMatch(TEXT01))
{
this.textBox1.Text += "r01.IsMatch:マッチしました" + "\r\n";
}
else
{
this.textBox1.Text += "r01.IsMatch:マッチしませんでした" + "\r\n";
}
//マッチを一つずつ検索する方法
//Matchメソッドを使う。
//マッチするものがなくてもnullが返されることはない。
Match m01 = r01.Match(TEXT01);
//マッチしていたか確認するプロパティがSuccess
while (m01.Success)
{
this.textBox1.Text += "m011:" + m01.Value + "\r\n";
//次のマッチに進む
//NextMatchを使う。
m01 = m01.NextMatch();
}
//一度に全てのマッチを検索する方法
//Matchesメソッドを使う。
MatchCollection m02 = r01.Matches(TEXT01);
foreach (Match m in m02)
{
this.textBox1.Text += "m02:" + m.Groups[0].Value + "\r\n";
}
//マッチしたところを置き換える。
//Replaceメソッドを使う。
string result01 = r01.Replace(TEXT01, "ABC");
this.textBox1.Text += "replace:" + result01 + "\r\n";
//結果
//r01.IsMatch:マッチしました
//m011:aBc
//m011:abc
//m02:aBc
//m02:abc
//replace:ABCDeFgABCdEfG
VB.NET
Dim TEXT01 As String = "aBcDeFgabcdEfG"
Dim r01 As Regex = New Regex("a.c")
'マッチするものがあったかどうかだけをチェックするなら、IsMatchメソッドが便利です。
If r01.IsMatch(TEXT01) Then
Me.TextBox1.Text += "r01.IsMatch:マッチしました" + vbCrLf
Else
Me.TextBox1.Text += "r01.IsMatch:マッチしませんでした" + vbCrLf
End If
'マッチを一つずつ検索する方法
'Matchメソッドを使う。
'マッチするものがなくてもnullが返されることはない。
Dim m01 As Match = r01.Match(TEXT01)
'マッチしていたか確認するプロパティがSuccess
While m01.Success
Me.TextBox1.Text += "m011:" + m01.Value + vbCrLf
'次のマッチに進む
'NextMatchを使う。
m01 = m01.NextMatch()
End While
'一度に全てのマッチを検索する方法
'Matchesメソッドを使う。
Dim m02 As MatchCollection = r01.Matches(TEXT01)
For Each m As Match In m02
Me.TextBox1.Text += "m02:" + m.Groups(0).Value + vbCrLf
Next
'マッチしたところを置き換える。
'Replaceメソッドを使う。
Dim result01 As String = r01.Replace(TEXT01, "ABC")
Me.TextBox1.Text += "replace:" + result01 + vbCrLf
'結果
'r01.IsMatch:マッチしました
'm011:aBc
'm011:abc
'm02:aBc
'm02:abc
'replace:ABCDeFgABCdEfG
| 良い | やや良い | 普通 | やや悪い | 悪い |
|---|
| 投稿日時 | 評価 | コメント |
|---|