正規表現では「*」や「?」などのいくつかの文字は特別な意味を持っており、そのまま記述すると特別な条件を指定していると解釈されます。こういった特殊な文字のことを正規表現では「メタ文字」と呼びますが、メタ文字を普通の文字として表現したい場合は、記号の前ににバックスラッシュ「\」記号を付けます。このようにすることで特別な意味を無効化(エスケープ)することができます。
今回は、正規表現においてエスケープが必要な文字の一覧を紹介します。
エスケープが必要な文字一覧
エスケープが必要な文字には、以下のようなものがあります。
対象文字 | エスケープ後 | 備考 |
\ | \\ | |
* | \* | |
. | \. | |
+ | \+ | |
? | \? | |
| | \| | |
{} | \{\} | エスケープしなかった場合:出現回数を指定する |
() | \(\) | 後方参照またはグループ化を適用 |
[] | \[\] | 直前の文字の出現回数を指定する |
^ | \^ | 行頭を指定する |
$ | \$ | 行末を指定する |
- | - | [ ] 内に記述する場合のみエスケープが必要 |
たとえば、「\」はエスケープを行うという意味を表す記号なので、「\」という文字そのものとマッチングを行いたい場合は、記号の前に「\」を追加し、「\\」と記述します。
まとめ
正規表現ではメタ文字を使用することにより複雑で高度なマッチングを行うことができます。しかし、メタ文字を普通の文字として扱いたい場合はエスケープが必要です。どのような文字を扱うときにエスケープが必要なのか確認しておきましょう。