[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 メーリングリストの案内