クイック スタート
チュートリアル
ツール & 言語
リファレンス
書籍レビュー
正規表現リファレンス
はじめに
目次
クイックリファレンス
文字
基本機能
文字クラス
ショートハンド
アンカー
単語境界
量指定子
Unicode
キャプチャグループ & 後方参照
名前付きグループ & 後方参照
特殊グループ
モード修飾子
再帰 & バランシンググループ
置換リファレンス
文字
マッチしたテキスト & 後方参照
コンテキスト & 大文字小文字変換
条件分岐
このサイトの他のコンテンツ
はじめに
正規表現クイックスタート
正規表現チュートリアル
置換文字列チュートリアル
アプリケーションと言語
正規表現の例
正規表現リファレンス
置換文字列リファレンス
書籍レビュー
印刷用PDF
このサイトについて
RSSフィード & ブログ
RegexBuddy—Better than a regular expression reference!

正規表現リファレンス: 特殊グループ

機能構文説明JGsoft .NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath
コメント (?#コメント) (?#の間にあるものはすべて)正規表現エンジンによって無視されます。 a(?#foobar)bは以下にマッチしますab はいはいいいえはいはいはいはいはいはいいいえいいえはいはいはいいいえECMAはいいいえいいえいいえいいえいいえいいえいいえ
ブランチリセットグループ (?|正規表現) ブランチリセットグループ内の正規表現に、キャプチャグループを持つ複数の選択肢がある場合、キャプチャグループの番号はすべての選択肢で同じになります。 (x)(?|(a)|(bc)|(def))\2は以下にマッチしますxaa, xbcbcまたはxdefdef最初のグループがxをキャプチャし、2番目のグループがa, bcまたはdef V2いいえいいえ5.107.2はい5.2.4はいはいいいえいいえいいえいいえいいえいいえECMA
1.42–1.83
いいえいいえいいえいいえいいえいいえいいえいいえ
アトミックグループ (?>正規表現) アトミックグループは、グループに一致が見つかった後、正規表現エンジンがグループにバックトラックするのを防ぎます。正規表現の残りの部分が失敗した場合、量指定子または選択肢がオプションになっている場合、エンジンはグループをバックトラックする可能性があります。ただし、グループ内の他の順列を試すためにグループにバックトラックすることはありません。 a(?>bc|b)cは以下にマッチしますabccただしabc はいはいはいはいはいはいはいはいはいいいえいいえいいえいいえはいいいえECMAいいえいいえいいえいいえいいえいいえいいえいいえ
肯定先読み (?=正規表現) 先読み内のパターンがマッチできる位置でマッチします。位置のみにマッチします。文字を消費したり、マッチを拡張したりすることはありません。次のようなパターンではone(?=two)threetwoの間にあるものはすべてthreeは、one のマッチが終わる位置でマッチする必要があります。t(?=s)は、の2番目のstreets. はいはいはいはいはいはいはいはいはいはいはいはいはいはいECMAECMAはいいいえいいえいいえいいえいいえいいえいいえ
にマッチします。 否定先読み (?!正規表現) 肯定先読みに似ていますが、否定先読みは、先読み内の正規表現がマッチに失敗した場合にのみ成功します。t(?!s)は、の2番目のstreets. はいはいはいはいはいはいはいはいはいはいはいはいはいはいECMAECMAはいいいえいいえいいえいいえいいえいいえいいえ
は、最初の にマッチします。 肯定後読み (?<=正規表現)t(?!s)は、の2番目のstreets. はいはいはいはいはいはいはいはいはいはいいいえはいはい1.9いいえECMAいいえいいえいいえいいえいいえいいえいいえいいえ
後読み内のパターンがその位置で終わるようにマッチできる場合、その位置でマッチします。 (?<=s)t 否定後読み (?<!正規表現)t(?=s)は、の2番目のstreets. はいはいはいはいはいはいはいはいはいはいいいえはいはい1.9いいえECMAいいえいいえいいえいいえいいえいいえいいえいいえ
後読み内のパターンがその位置で終わるようにマッチできない場合、その位置でマッチします。 (?<!s)t 後読み (?<=正規表現|より長い正規表現)後読み内の選択肢は長さが異なる場合があります。は、の2番目の(?<=is|e)t. はいはいはい5.30はいはいはいはいはいはいは、2番目と4番目のはいいいえ1.9は、2番目と4番目のECMA
にマッチします。
は、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目の
後読み内のパターンがその位置で終わるようにマッチできない場合、その位置でマッチします。 n/a 1.38–1.43 (?<=x{n,m})有限の最大繰り返し回数を持つ量指定子は、後読み内で使用できます。は、の2番目の(?<=is|e)t. はいはい6
(?<=s\w{1,7})t
は、4番目のいいえいいえいいえいいえいいえはいは、2番目と4番目のはいいいえいいえは、2番目と4番目のいいえは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目の
後読み内のパターンがその位置で終わるようにマッチできない場合、その位置でマッチします。 にマッチします。 にのみマッチします。 4回失敗有限の最大繰り返し回数を持つ量指定子は、後読み内で使用できます。は、の2番目の(?<=is|e)t. はいはい13いいえいいえいいえいいえいいえいいえはいは、2番目と4番目のはいいいえいいえは、2番目と4番目のいいえは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目の
後読み内のパターンがその位置で終わるようにマッチできない場合、その位置でマッチします。 5.30回失敗 完全な正規表現構文は、後読み内で使用できます。 (?<=s\w+)tは以下にマッチします(group)(?<=\1)の2番目の(?<=is|e)t. はいはいいいえいいえいいえ10.237.3.0いいえ4.0.0はいは、2番目と4番目のはい3.5いいえは、2番目と4番目のいいえは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目のは、2番目と4番目の
後方参照は、後読み内で使用できます。後読みで禁止されている構文は、参照されているキャプチャグループでも禁止されています。 (\w).+(?<=\1) twisty street(\w).+(?<=\1)正規表現マッチからテキストを除外する(\w).+(?<=\1)\K の左側の正規表現によってマッチされたテキストは、正規表現全体のマッチから除外されます。それ以外の場合、正規表現は通常どおり左から右にマッチされます。は、の2番目のstreets. V2いいえいいえ5.107.2はい5.2.4はいはいいいえいいえいいえいいえ2.0いいえECMA
1.42–1.83
いいえいいえいいえいいえいいえいいえいいえいいえ
の左側のキャプチャグループ は、通常どおりキャプチャします。s\Kt(?=正規表現)は最初のにのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) ここで、 は有効な先読みであり、t(?=s)thenelseの2番目のは有効な正規表現です。 はいはいいいえはいはいはいはいはいはいいいえいいえいいえいいえいいえいいえECMAいいえいいえいいえいいえいいえいいえいいえいいえ
先読みが成功した場合、正規表現全体がマッチするためには「then」の部分がマッチする必要があります。先読みが失敗した場合、正規表現全体がマッチするためには「else」の部分がマッチする必要があります。先読みはゼロ長です。「then」と「else」の部分は、通常の正規表現のようにマッチを消費します。 (?(?<=a)b|c)s\Kt, にのみマッチします。と最初の先読み条件にマッチします。b は、通常どおりキャプチャします。c babxcact(?!s)7暗黙的な先読み条件elseの2番目の(?(正規表現)then|else) いいえはいいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえ
正規表現 s\Ktは有効な正規表現であり、はキャプチャグループの名前ではありません。にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) 「正規表現」がキャプチャグループの名前でない場合、 と記述したかのように先読みとして解釈されます。先読みが成功した場合、正規表現全体がマッチするためには「then」の部分がマッチする必要があります。先読みが失敗した場合、正規表現全体がマッチするためには「else」の部分がマッチする必要があります。先読みはゼロ長です。「then」と「else」の部分は、通常の正規表現のようにマッチを消費します。は以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 はいはいいいえいいえ6.7はい5.2.0はいはいいいえいいえいいえはいいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえ
正規表現 s\Ktは有効な正規表現であり、はキャプチャグループの名前ではありません。にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) 「正規表現」がキャプチャグループの名前でない場合、 747cは以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 V2いいえいいえ5.107.0はい5.2.2はいはいいいえいいえいいえいいえ2.0いいえECMA
1.42–1.83
いいえいいえいいえいいえいいえいいえいいえいいえ
正規表現 にマッチします。s\Ktは有効な正規表現であり、はキャプチャグループの名前ではありません。にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) 「正規表現」がキャプチャグループの名前でない場合、 名前付き条件は以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 V2いいえいいえ5.107.0はい5.2.2はいはいいいえいいえいいえいいえ2.0いいえECMA
1.42–1.83
いいえいいえいいえいいえいいえいいえいいえいいえ
(?(名前)then|else) 名前s\Kt1はキャプチャグループの名前であり、にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) 指定された名前のキャプチャグループがこれまでのマッチ試行に参加した場合、正規表現全体がマッチするためには「then」の部分がマッチする必要があります。キャプチャグループがこれまでのマッチ試行に参加しなかった場合、正規表現全体がマッチするためには「else」の部分がマッチする必要があります。 (?<one>a)?(?(one)b|c)は以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 はいはいいいえはいはいはいはいはいはいいいえいいえいいえはい2.0いいえECMAいいえいいえいいえいいえいいえいいえいいえいいえ
、最初のs\Kt-1、と2番目のにのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) にマッチします。 (?(<name>)then|else)は以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 V2いいえいいえいいえ7.2はい5.2.4はいはいいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえ
(?<one>a)?(?(<one>)b|c) (?(+1)then|else)s\Kt+1は正の整数であり、にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) 条件付き構文で、条件部の左から数えて指定された数だけ名前付きまたは番号付きのキャプチャグループの開き括弧を数えることによって見つけられるキャプチャグループをテストします。参照されたキャプチャグループがこれまでのマッチ試行に関与した場合、「then」の部分がマッチしなければ、正規表現全体がマッチしません。キャプチャグループがこれまでのマッチ試行に関与しなかった場合、「else」の部分がマッチしなければ、正規表現全体がマッチしません。 ((?(+1)b|c)(d)?){2}は以下にマッチしますccの間にあるものはすべてcdbの2番目のbdbdccxcdcxcdb V2いいえいいえいいえ7.2はい5.2.4はいはいいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえ
(?(名前)then|else) (?(+1)then|else)s\Kt1はキャプチャグループの名前であり、にのみマッチします。の間にあるものはすべて先読み条件(?(?=正規表現)then|else) +は無視され、その数値はキャプチャグループへの絶対参照として扱われます。参照されたキャプチャグループがこれまでのマッチ試行に関与した場合、「then」の部分がマッチしなければ、正規表現全体がマッチしません。キャプチャグループがこれまでのマッチ試行に関与しなかった場合、「else」の部分がマッチしなければ、正規表現全体がマッチしません。 (a)?(?(+1)b|c)は以下にマッチしますab(?(\d{2})7|c)elseelseの2番目のは有効な正規表現です。 いいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえはいいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえいいえ
機能構文説明JGsoft .NET Java Perl PCRE PCRE2 PHP Delphi R JavaScript VBScript XRegExp Python Ruby std::regex Boost Tcl ARE POSIX BRE POSIX ERE GNU BRE GNU ERE Oracle XML XPath