【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の方が高速に動作することが多いらしい。ここのヒントを参照。