[PHP-users 24910] Re: preg_split について

ISIGE, Akira xia @ silvia.com
2005年 3月 16日 (水) 10:31:58 JST


いしげ です.

# もう済んだ話かもしれませんが

> でもなんかおかしくありませんか?
> Perlでは\\ですし。

PHP は「文字列を関数に与え,関数がそれを正規表現として解釈する」ですが,
Perl では(この場合)「正規表現リテラルをマッチング演算子のオペランドとする」
です.
……と解釈してはいかがでしょう?
前者の PHP 式解釈では,先に \ のエスケープ処理が行なわれるので,今回の挙動と
なります.
後者では「正規表現リテラル」としてエスケープ処理の仕方からして文字列とは異な
ります.

例えば Perl でも,
----------------
$re = '^\\$';
print '\\' =~ m/$re/;
----------------
は偽を返します.PHP ではこれと同じように動作している,と考えれば,
今回の挙動も納得いくのではないでしょうか.
前提として,PHP の PCRE 関数は Perl の文法と同一である必然性はありませんし.


-- 
ISIGE, Akira



PHP-users メーリングリストの案内