.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
良い | やや良い | 普通 | やや悪い | 悪い |
---|
投稿日時 | 評価 | コメント |
---|