記号 | 説明 |
---|---|
. |
「.(ドット/ピリオド)」は、「改行」文字以外の任意の文字を指定する記号。 改行文字「\n」を除く、任意の「1文字」に一致する。 改行文字「\n」と一致するには、「[.\n]」と などのパターンを指定する。 |
* |
「*(アスタリスク/アスター)」は、 直前にある文字が、「0回」以上続くことを意味する記号。 「.*」と指定することで、「改行」以外のすべての文字に合致するので、1行すべてを選択できるようになる。 |
+ |
直前の文字の1個以上の繰り返しに一致。 |
? |
直前の文字に、0回または、1回一致する。 |
\ |
「\」は、「\」に続く文字が「特殊文字」「リテラル」「後方参照」「8 進エスケープ」であることを示す。 「\n」=「改行文字」 「\\」=「\」 「\(」=「(」 |
^ |
「^(キャレット/ハット)」は、行の最初を指定する記号。 「^」の後に続く文字が、文字列の先頭にあるという印。 文字のない空の行を表すには「^\n」(行頭が改行である)と記述。 |
$ |
「$」の後に記述した文字が、行の最後にあるという印。 行の最後にマッチするという記号。 |
| |
「|」は、「条件|条件」と記述することで、条件の追加を意味する記号。 「x|y」は、x または y と一致。 |
/ |
「/(スラッシュ)」は、「正規表現」では、特に意味を持っていません。 「正規表現」のコード・パターンの前後において、明確化する「デリミタ」として使わている。 「デリミタ(Delimiter)」とは、「正規表現」のコード・パターンの前後を囲むことで、パターンの範囲を明示する役割をする記号のこと。 |
[ ] |
括弧内に含まれる一文字にマッチする。 [abc] は、「a」「b」「c」にマッチする。 英語のアルファベットでは、[a-z] は全ての小文字にマッチする。 [abcq-z] は a、b、c、q、r、s、t、u、v、w、x、y、z にマッチし、[a-cq-z]でも同様である。 文字 '-' は括弧内の最初か最後にあるときのみ、リテラルに扱われる。 |
[^ ] |
括弧内に含まれない一文字にマッチする。 [^abc] は、「a」「b」「c」以外の任意の文字にマッチする。 [^a-z] は小文字以外の任意の一文字にマッチする。 |
() | これに囲まれた表現は、後に呼び出すことが出来る。次の \n の項を参照のこと。 |
$n |
ここで「n」は、「1~9」までの数字。 n番目の 「(」「)」 で囲まれた部分にマッチする。 |
{x,y} |
直前の"ブロック"の 「x」回以上「y」回以下の繰り返しにマッチする。 例えば、"a{3,5}" は aaa、aaaa、aaaaa にマッチする。 |
{n} | 直前にある文字のちょうどn回に一致。 つまりA{2}はAA、A{4}はAAAAに一致。 \d(数字を表す正規表現)と組み合わせると数字の桁数が指定できます。 |
{n,} | 直前にある文字のn回以上に一致。 A{2,}は、「AA」,「AAA」,「AAAA」...(2文字以上ならいくらでも)に一致する。 |
{n,m} | 直前にある文字のn回以上、m回以下に一致。 A{2,4}は、「AA」,「AAA」,「AAAA」に一致する。 \d(数字を表す正規表現)と組み合わせると数字の桁数が指定できる。 カンマと数の間には、スペースを入れない。 'o{0,1}' は 'o?' と同じ意味。 |
(pattern) |
「pattern」と一致した文字列を記憶する。 記憶した一致文字列は、「$数字」で呼び出すことができる。 |
(?:pattern) |
「pattern」に記述した文字列を検索できるが、 検索された文字列は記憶されず、後で使用することはできない。 「industry|industries」と指定する代わりに、「industr(?:y|ies)」と指定することができる。 |
文字列(?=pattern) |
文字列の後に「pattern」で指定した文字列が続く場合に一致する。 一致した文字列は記憶されない。 |
(?!pattern) |
「pattern」で指定しない文字列が続く場合に一致。 一致した文字列は、記憶されない。 |
\b |
「\b」は、単語の境界線と指定する記号。 「"/\b文字列\b/"」= 指定した文字だけの文字列(単語)を指定。 「"/\b文字列/"」= 指定した文字で始まる文字列(単語)を指定。 「"/文字列\b/"」= 指定した文字で終わる文字列(単語)を指定。 単語の境界とは、単語とスペースとの間の位置のこと。 たとえば、「'er\b'」 は、「never」の「er」と一致するが、「verb」の「er」とは一致しない。 |
\B |
「文字列\B」と記述することで、単語境界以外と一致。 たとえば、'er\B' は "verb" の 'er' と一致しますが、"never" の 'er' とは一致しません。 |
\cx |
「x」の場所で指定した制御文字と一致。 「\cM」は、「Control-M」または「キャリッジ リターン文字」と一致。 「x」 の値は、「A-Z」または「a-z」の範囲内で指定。 |
\d |
「0~9」の数字を表す正規表現。 [0-9] と同じ意味。 |
\D |
「10進数」以外の任意の1文字と一致。 [^0-9] と同じ意味。 |
\f |
フォームフィード文字と一致。 \x0c および \cL と同じ意味。 |
i |
文字の「大文字」「小文字」を区別せずに検索させることができる。 「"/正規表現/i"」と指定する。 |
\n |
改行文字。LFと呼ばれる改行。 UNIX系マシンの標準的な改行コード。 \x0a および \cJ と同じ意味。 |
\r |
改行文字。 CRと呼ばれる改行。 Apple系マシンの標準的な改行コード。 Windows系マシンはCR+LFが改行コード。 2文字で1つの改行。 |
\s |
空白文字を表す正規表現。 空白文字は、半角スペース、タブ文字を含む。 スペース、タブ、フォームフィードなどの任意の空白文字と一致。 [ \f\n\r\t\v] と同じ意味。 |
\S |
空白文字以外を表す正規表現。 正規表現では小文字が大文字になると反対の意味を持つ。 空白文字以外の任意の文字と一致。[^ \f\n\r\t\v] と同じ意味。 |
\t |
タブ文字と一致。\x09 および \cI と同じ意味。 タブ文字を示す正規表現。 タブは適当な間隔を空けてくれる文字。 タブを1文字入れると、通常、半角スペース4文字分か8文字分の間隔があく。 |
\v |
垂直タブ文字と一致。\x0b および \cK と同じ意味。 |
\w |
単語に使用される任意の文字と一致。 アンダースコアも含まれます。 「[A-Za-z0-9_]」と同じ意味。 英数字と「_」(アンダーバー)を表す正規表現。 「ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_」と同じ意味。 |
\W |
単語に使用される文字以外の任意の文字と一致。 「[^A-Za-z0-9_]」と同じ意味。 \w以外を表す正規表現。 |