3

PHP 5.3.1 を使用すると、PCRE が有効になり、バージョン 7.9 2009-04-11 になります。

$string = preg_replace("/\p{Number}/u", "", $string);

次のエラーが生成されます: コンパイルに失敗しました: \P の後の不明なプロパティ名。. .

これは PHP 5.3 以降で修正されたバグであることは理解していますが、私のスクリプトを使用している他のユーザーと同じように、明らかに問題が発生しています。私の知る限り、使用されている PCRE のバージョンまたはコンパイル方法に関係している可能性があります。

使用されているコンパイル済みの PHP のバージョンを制御することはできません。

  1. PCRE が正しくコンパイルされているかどうかを PHP スクリプトで確認する方法はありますか?

  2. 私も使用しています:

    preg_match("/\p{Lu}/u", $caseChar); preg_match("/\p{Ll}/u", $caseChar); preg_match("/\p{L}/u", $string, $caseChar);

正しくない PCRE が見つかった場合 (1. 可能であれば)、上記の preg_replace および preg_match 式に代わるものはありますか?

ありがとう、

マーク

4

1 に答える 1

5

http://php.net/manual/en/regexp.reference.unicode.php

\p{Number}は、上記のようにサポートされているプロパティ コードではありません。それは\p{N}、または単に\pNです。

于 2013-02-25T16:46:09.600 に答える