タグ : 挙動

 

JavaScript 正規表現の動作確認(リテラルフォーマット)

JavaScriptで正規表現による検索を行った時の挙動を確認できます。
 
正規表現のパターンとフラグ、検索対象を入力し実行ボタンをクリックすると、パターンにマッチした個所を黄色でハイライト表示します。
 
正規表現パターン:
var re = / 
 / 
 
検索対象:

 

JavaScript 正規表現の動作確認(RegExp)

JavaScriptで正規表現による検索を行った時の挙動を確認できます。
 
正規表現のパターンとフラグ、検索対象を入力し実行ボタンをクリックすると、パターンにマッチした個所を黄色でハイライト表示します。
 
コンストラクタ関数「RegExp」を使用する場合は、¥マークをエスケープする必要があります。たとえば数字を検索する場合は「¥d」を使用しますが、コンストラクタ関数へは「¥¥d」と指定する必要があります。
 
 
 
 
正規表現パターン:
new RegExp(" 
 "," 
 ");
 
検索対象:

 

.NET 正規表現におけるRegexOptions.Multilineの挙動について

C#、VB.NETで正規表現による検索を行う際、オプションに「Multiline」を指定してもパターンにマッチしない場合があります。
 
たとえばパターンに「@"^\d+$"」を指定して以下の文字列を検索すると、最終行の「789」にしかマッチしません。
 
abc
123
456
789
 
これはパターンの「$」が「改行コード (\n) または入力文字列の末尾と一致する」ように動きますが、「復帰と改行コード(\r\n)の組み合わせとは一致しない」仕様のためです。
 
 
この現象は「$」の代わりに部分式「\r?$」を用いることで回避できます。
 
パターンに「@"^\d+\r?$"」を指定した場合、
 
abc
123
456
789
 
となりますが、これでは改行コードまでマッチしてしまいました。上記例でパターンにマッチした数字のみ必要な場合は、パターンに「@"(^\d+)(\r?$)"」を指定し、マッチした文字列から「$1」にて部分文字列を抽出します。
 
以下はパターンにマッチした数字をシングルコートで囲うサンプルです。
 
        // 数字で始まり数字で終わる行の数字をシングルコートで囲います
        private string AddSingleCoat(string target)
        {
            Regex numberCR = new Regex(@"(^\d+)(\r?$)",
                RegexOptions.Multiline);

            return numberCR.Replace(target, "'$1'$2");
        }
 

.NET 正規表現の動作確認

C#、VB.NETで正規表現による検索を行った時の挙動を確認できます。
 
正規表現のパターンと検索対象を入力し実行ボタンをクリックすると、パターンにマッチした個所を黄色でハイライト表示します。
 
逐語的リテラル文字列「@"~"」を使用しない場合は、\マークをエスケープする必要があります。たとえば数字を検索する場合は「\d」を使用しますが、標準リテラル文字列の場合は「\\d」と指定する必要があります。
 
 
 
 
正規表現パターン:
new Regex(
 ",
    RegexOptions.
);
 
検索対象:

 
※正規表現パターンの改行コード、「\r\n」と「\n」は同一視します。
g h T
 27,630 Total Views