正規表現による検索
- Last UpdatedSep 26, 2024
- 1 minute read
正規表現は、英数字および特殊文字(メタ文字)を使用して、一致する 1 つまたは複数の文字列を表します。正規表現は、検索するスクリプト テキストと比較する文字パターンとして機能します。
正規表現は、算術表現と同様に構成されます。さまざまなメタ文字と演算子を使用して複数の小さい表現を組み合わせて大きな表現を作成できます。
正規表現の要素は、個々の文字、文字のセット、文字の範囲、または複数の文字の間の選択です。これらの要素の組み合わせも要素として使用できます。
スクリプトの正規表現
|
正規表現 |
説明 |
例 |
|
をクリックします。 |
1 つの任意の文字に一致します(改行を除く)。 |
「s.e」は 「step」の「ste」および「transfer」の「sfe」に一致しますが、「across」の「acro」には一致しません。 |
|
* |
先行する式のゼロ以上の発生に一致します(可能な限り多くの文字に一致します)。 |
a*r 「rack」の「r」、「ark」の「ar」、および「aardvark」の「aar」に一致します。 |
|
.* |
任意の文字列にゼロ回以上一致します(ワイルドカード *)。 |
「c.*e」は「racket」の「cke」、「comment」の「comme」、および「「code」の「code」に一致します。 |
|
+、 |
先行する式の 1 つ以上の発生に一致します(可能な限り多くの文字に一致します)。 |
e.+e 「feeder」の「eede」に一致しますが、「ee」には一致しません。 |
|
.+ |
任意の文字列に 1 回以上一致します(ワイルドカード ?)。 |
「e.+e」は「feeder」の「eede」に一致しますが、「ee」には一致しません。 |
|
*? |
先行する式のゼロ以上の発生に一致します(可能な限り少ない文字に一致します)。 |
e.*?e 「feeder」の「ee」に一致しますが、「eede」には一致しません。 |
|
+? |
先行する式の 1 つ以上の発生に一致します(可能な限り少ない文字に一致します)。 |
e.+?e 「enterprise」の「ente」および「erprise」に一致しますが、「enterprise」という単語には一致しません。 |
|
^ |
行または文字列の先頭にある一致文字列に一致します。 |
^car 行の最初にある「car」という単語にのみ一致します。 |
|
\r?$ |
一致文字列を行の末尾にアンカーします。 |
End\r? nbsp;行の末尾にある「end」という単語にのみ一致します。 |
|
[abc] |
セット内の 1 つの任意の文字に一致します。 |
b[abc] 「ba」、「bb」、および「bc」に一致します。 |
|
[a-f] |
文字の範囲に含まれる任意の文字に一致します。 |
be[n-t] 「between」の「bet」、「beneath」の「ben」、および「beside」の「bes」に一致しますが、「below」には一致しません。 |
|
() |
括弧で囲まれた表現をキャプチャして暗示的に番号を設定します。 |
([a-z])X\1 「aXa」と「bXb」に一致しますが、「aXb」には一致しません。「\1」は最初の式グループ「[a-z]」を参照します。 |
|
(?!abc) |
一致を検証します。 |
real (?!ity) 「realty」および「really」の「real」に一致しますが、「reality」には一致しません。また、「realityreal」の(最初の「real」ではなく)2 番目の「real」も検索されます。 |
|
[^abc] |
指定した文字のセットに含まれない任意の文字に一致します。 |
be[^n-t] 「before」の「bef」、「behind」の「beh」、および「below」の「bel」に一致しますが、「beneath」には一致しません。 |
|
| |
記号の前または後のいずれかの表現に一致します。 |
(sponge|mud)bath 「spongebath」および「mudbath」に一致します。 |
|
|\^ |
円記号の後の文字をエスケープします。 |
|
|
{x}, |
先行する文字またはグループの発生数を指定します。 |
x(ab){2}x 「xababx」に一致します。 「x(ab){2,3}x」は「xababx」と「xabababx」に一致しますが、「xababababx」には一致しません。 |
|
\p{X} |
Unicode 文字クラスのテキストに一致します。ここで「X」は Unicode 番号を表します。 |
\p{Lu} 「Thomas Doe」の「T」と「D」に一致します。 |
|
\b |
単語境界に一致します。 |
\bin 「inside」の「in」に一致しますが、「pinto」には一致しません。 |
|
\r?\n |
改行(新しい行の前のキャリッジ リターン) |
End\r?\nBegin 「End」が行の最後の文字列で、次の行の最初の文字列が「Begin」の場合にのみ「End」と「Begin」に一致します。 |
|
\w |
任意の英数字に一致します。 |
a\wd 「add」と「a1d」に一致しますが、「a d」には一致しません。 |
|
(?[^\r\n])\s |
ホワイトスペース文字に一致します。 |
Public\sInterface 「Public Interface」という語句に一致します。 |
|
\d |
任意の数字に一致します。 |
\d 「3456」の「3」、「23」の「2」、および「1」の「1」に一致します。 |
|
\uXXXX(「XXXX」は Unicode 文字値を指定します) |
1 つの Unicode 文字に一致します。 |
\u0065 文字「e」に一致します。 |
|
\b(\w+|]\w-[0-9\]]\w*)\b |
識別子に一致します。 |
「type1」に一致しますが、「&type1」および「#define」には一致しません。 |
|
((\".+?\")|('.+?')) |
引用符内の文字列に一致します。 |
一重引用符または二重引用符に囲まれた文字列に一致します。 |
|
\b0[xX]([0-9a-fA-F])\b |
16 進数文字に一致します。 |
「0xc67f」に一致しますが、「0xc67fc67f」には一致しません。 |
|
\b[0-9]\.\[0-9]+\b |
整数と「d」に一致します。 |
「1.333」に一致します。 |
優先順位
正規表現は左から右に評価され、優先順位に従います。
次の表に正規表現演算子の優先順位を高い順から示します。
|
演算子 |
説明 |
|
\ |
エスケープ |
|
()、(?:)、(?=)、[] |
括弧と角括弧 |
|
*、+、?、{n}、{n,}、{n,m} |
修飾子 |
|
^、$、\任意のメタ文字 |
アンカーとシーケンス |
|
| |
代替 |
文字は代替演算子よりも優先順位が高いので、「m|food」は「m」または「food」に一致します。