朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
正規表現 アンカーについて





アンカー説明
^文字列の先頭、またはRegexOptions.Multilineを指定した場合は行の先頭にマッチする。
$ 文字列の末尾、またはRegexOptions.Multilineを指定した場合は行の末尾にマッチする。
しかしマッチするのは\nの場合で、\r\nにはマッチしません。\r\nにマッチさせたいならば正規表現を\r$とします。
\nと\r\nの両方にマッチさせたいならば、\r?$とします。
\A文字列の先頭にマッチします。複数行の先頭にはマッチません。
\Z 文字列の末尾、またはRegexOptions.Multilineを指定した場合は行の末尾にマッチする。
しかしマッチするのは\nの場合で、\r\nにはマッチしません。\r\nにマッチさせたいならば正規表現を\r\Zとします。
\nと\r\nの両方にマッチさせたいならば、\r?\Zとします。
\z文字列の末尾にマッチします。複数行の末尾にはマッチしません。
\G前回のマッチが終了した位置にマッチします。
\bワード境界にマッチします。
\Bワード境界以外にマッチします。

C#

            private string TEXT03 = "Abc1あいうbcz\n" +
            "いすせ36zbc\r\n" +
            "abcdefghijklmn\n" +
            "あいうえお";

            //行の末尾の前がアルファベットか数字の場合マッチする正規表現で、複数行をサポートするように設定
            Regex r7 = new Regex("([a-zA-z0-9]+\r?$)", RegexOptions.Multiline);
            MatchCollection m7 = r7.Matches(TEXT03);

            foreach (Match m in m7)
            {
                this.textBox1.Text += "m7:" + m.Groups[1].Value + "\r\n";
            }

VB.NET

    Private TEXT03 As String = "Abc1あいうbcz" & vbLf _
& "いすせ36zbc" & vbCrLf _
& "abcdefghijklmn" & vbLf _
& "あいうえお"

        '行の末尾の前がアルファベットか数字の場合マッチする正規表現で、複数行をサポートするように設定
        Dim r7 As Regex = New Regex("([a-zA-z0-9]+\r?$)", RegexOptions.Multiline)
        Dim m7 As MatchCollection = r7.Matches(TEXT03)

        For Each m As Match In m7
            Me.TextBox1.Text += "m7:" & m.Groups(1).Value & vbCrLf
        Next








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

投稿日時評価コメント