[PHP-doc 852] PCREの「Perl とは異なる点」の修正提案
HANAWA Yoshio
y @ hnw.jp
2010年 8月 7日 (土) 15:20:14 JST
塙です。
PHPマニュアルのPCREの説明に間違いを見つけました。
PCRE正規表現で\Qと\Eが使えないとPHPマニュアルにはありますが、
実際は利用できます。
\Qと\Eはメタ文字の解釈のオンオフをするエスケープシーケンスです。
http://php.net/manual/ja/reference.pcre.pattern.differences.php には
5. 次の Perl エスケープシーケンスはサポートされせん。 \l, \u, \L, \U, \E, \Q 。 これらのエスケープシーケンスは、Perl のパター
ンマッチエンジン内 ではなく、文字列処理の部分で実装されているためです。
とありますが、サポート外は「\l, \u, \L, \U」の4つが正しいと思います。
英語版マニュアルではそうなっています。
実際、PHP5.0.0以降では下記プログラムが期待通りに動きます。
<?php
var_dump(preg_match('/\\Q.$.\\E/', '.$.')); // int(1)
よろしくお願いいたします。
PHP-doc メーリングリストの案内