朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
正規表現 文章の改行に対して行頭と行末をマッチさせたい時





長い文章に対して正規表現を使いたい時に、^(行頭)、$(行末)を各行にマッチさせたい時には、オプションの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あ

        








良いやや良い普通やや悪い悪い

投稿日時評価コメント