見出し画像

【PHP】正規表現で使用するデリミタについて

こんにちは、スーパーソフトウェア東京オフィス技術部の金子です。
今回は、PHPの正規表現チェックに使用するデリミタに関してまとめます。

デリミタとは

データの区切り文字のこと。データの始まりや、終わりを表します。
例:CSVでは、「,」がデータの区切りを表します。
HTML要素は「<」がデータの始まりを表し、「>」がデータの終わりを表します。

PHPで使用できるデリミタ

PHPの正規表現で使用できる主なデリミタは以下です。

  • /

  • #

  • |

  • ~

  • @

  • :

  • { } (「{」が始まりの場合、「}」が終わりを示す)

使用例

よく使われるのは「/」です。
基本的には、ソースコードで使用されているものを使用すべきですが、「/」を使用するケースが多く、公式ドキュメントの使用例でも「/」が使用されています。

$str = 'test';

// 各出力結果:1
echo preg_match('/test/', $str);
echo preg_match('#test#', $str);
echo preg_match('|test|', $str);
echo preg_match('~test~', $str);
echo preg_match('@test@', $str);
echo preg_match(':test:', $str);
echo preg_match('{test}', $str);

注意点

正規表現の文字列内にデリミタとして使用している文字がある場合は、文字ではなくデリミタとして解釈されてしまいエラーが発生するため、エスケープする必要があります。

例えば、以下のように、URLの正規表現文字列に「/」が多い場合、エスケープが多くて見づらくなります。

$url = 'https://example.com/';

// 出力結果:1
echo preg_match('/https:\/\/example.com\//', $url);

以下のように、正規表現文字列で使用していない他のデリミタを使用して、エスケープの数を減少すると、見やすくなります。

// 出力結果:1
echo preg_match('#https://example.com/#', $url);

採用情報

新卒情報はWantedlyで


いいなと思ったら応援しよう!