【PHP】正規表現で気になったPOSIXとPCREの違い

このときに少し気になったPOSIXとPCRE。全ての答えがwikipediaに。

簡単にまとめると
POSIX(ポジックス、Portable Operating System Interface)自体は標準化団体がつけた取り決めの名称。詳しくはここ

POSIXに従った正規表現を書くと多くのUNIX上(シェルスクリプトなど)でそのまま使用することができる。
PHP関数ではereg*となっているのがPOSIXの正規表現を用いる関数。PHPマニュアル

PCRE(Perl Compatible Regular Expressions)はPerl互換の正規表現ライブラリの名称。詳しくはここ
POSIXを上回る豊富な文法を備えているらしい。多くのソフトウェアに組み込まれているので、開発する上での標準。
PHP関数ではpreg*となっているのがPCREの正規表現を用いる関数。PHPマニュアル

PCREは\d, \w, \sとかが使えたり大文字小文字を区別しない検索ができる。
PHPではPOSIXのereg_replaceよりPCREのpreg_replaceの方が高速に動作することが多いらしい。ここのヒントを参照。

名古屋でプロのSEを目指す