Tech Blog

正規表現でエスケープが必要となる記号一覧

2020-02-14

正規表現でエスケープが必要となる記号一覧です。

| 記号 | 説明 | | ------- | --------------------------------------------- | ---------------------- | | \ | メタ文字をエスケープする役割をもつ | | * | 直前のパターンの0回以上の繰り返し | | + | 直前のパターンの1回以上の繰り返し | | ? | 直前のパターンの0回から1回の繰り返し | | . | 任意の1文字 | | ^ | 行頭の位置を表す | | $ | 行末の位置を表す | | | | 左右の文字列のいずれか | | min,max | minからmax回数の繰り返し | | () | グループ化するために利用する | | [] | []の中に書く場合のみエスケープが必要 | | / | デリミタと同じ文字の場合はエスケープが必要 | | - | []で利用する場合のみ、~のいずれか1文字を判定 |

全てを含んだ文字列にすると、\\\*\+\?\.\^\$\|\{\}\(\)\[\]\/となります。

以下のPHPのソースコード例を示します。

エスケープ対象の記号+が1文字マッチします。

<?php
 
preg_match('/[\\\*\+\?\.\^\$\|\{\}\(\)\[\]\/]/', 'abc+', $matches);
 
var_dump($matches);
// array(1) {
//   [0] =>
//   string(1) "+"
// }

参考

おすすめの正規表現実行サイト

以下のサイトでよく実行結果を確かめています。

https://regex101.com/