PHP で正規表現を使用して中国語を検証する際の問題

WBOY
リリース: 2016-06-21 09:00:49
オリジナル
970 人が閲覧しました

$str = '中華人民共和国 123456789abcdefg';
echo preg_match("/^[u4e00-u9fa5_a-zA-Z0-9]{3,15}$",$strName);

上記のコードを実行すると、どのようなプロンプトが表示されるか確認してください。
警告: preg_match(): コンパイルに失敗しました: PCRE は、F:wwwrootphptest.php の行 2 のオフセット 3 で L、l、N、P、p、U、u、または X をサポートしていません

次の Perl エスケープ シーケンスは PHP 正規表現ではサポートされていないことが判明しました: L、l、N、P、p、U、u、または X

UTF-8 モードでは、"x{. . .}" の場合、中括弧内の内容は 16 進数を表す文字列です。元の 16 進エスケープ シーケンス xhh は、値が 127 より大きい場合、2 バイトの UTF-8 文字と一致します。
つまり、preg_match("/^[x80-xff_a-zA-Z0-9]{3,15}$",$strName); を解くことができます。



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート