長い文章に対して正規表現を使いたい時に、^(行頭)、$(行末)を各行にマッチさせたい時には、オプションのRegexOptions.Multilineを利用すると良いです。
C#
string strResult = ""; //元の文章 string ORIGINAL_TEXT = "あいうえお\n2あかきくけこ\n45あさしすせそ\nあいうえお"; //オプションなし Regex reg1 = new Regex(@"^[\d]+あ"); var ms1 = reg1.Matches(ORIGINAL_TEXT); strResult = "オプションなしの結果\r\n"; foreach (Match match in ms1) { strResult += match.Value; strResult += "\r\n"; } strResult += "\r\nマルチラインの結果\r\n"; //マルチラインのオプション Regex reg2 = new Regex(@"^[\d]+あ", RegexOptions.Multiline); var ms2 = reg2.Matches(ORIGINAL_TEXT); foreach (Match match in ms2) { strResult += match.Value; strResult += "\r\n"; } this.textBox1.Text = strResult; //結果 //オプションなしの結果 // //マルチラインの結果 //2あ //45あ
VB.NET
Dim strResult As String = "" '元の文章 Dim ORIGINAL_TEXT As String = "あいうえお" + vbCrLf + "2あかきくけこ" + vbCrLf + "45あさしすせそ" + vbCrLf + "あいうえお" 'オプションなし Dim reg1 As Regex = New Regex("^[\d]+あ") Dim ms1 As MatchCollection = reg1.Matches(ORIGINAL_TEXT) strResult = "オプションなしの結果" + vbCrLf Dim match As Match For Each match In ms1 strResult = strResult + match.Value strResult = strResult + vbCrLf Next strResult = strResult + vbCrLf + "マルチラインの結果" + vbCrLf 'マルチラインのオプション Dim reg2 As Regex = New Regex("^[\d]+あ", RegexOptions.Multiline) Dim ms2 As MatchCollection = reg2.Matches(ORIGINAL_TEXT) For Each match In ms2 strResult = strResult + match.Value strResult = strResult + vbCrLf Next Me.TextBox1.Text = strResult '結果 'オプションなしの結果 ' 'マルチラインの結果 '2あ '45あ
良い | やや良い | 普通 | やや悪い | 悪い |
---|
投稿日時 | 評価 | コメント |
---|