1

PHP 5.3.xを使用して Web アプリケーションを開発しています。すべて正常に動作していますが、ベンガル句読点の正規表現の問題が原因で問題を解決できません。以下は私のコードです:

$value          = '\u09AC\u09BE\u0982\u09B2\u09BE\u09A6\u09C7\u09B6';
$value          = mb_convert_encoding($value, 'UTF-8', 'UTF-16BE');
//$value            = 'বাংলাদেশ';
//$value            = 'Bangladesh';

$pattern        = '/^[\p{Bengali}]{0,100}$/';
//$pattern      = '/^[\p{Latin}]{0,45}$/';

echo preg_match($pattern, $value);

ベンガル語を渡すかどうかに関係なく、常に が返されますfalseJavaEEアプリケーションでは、この正規表現を使用しました

\p{InBengali}

しかし、PHPでは機能しません! とにかく、どうすればこの問題を解決できますか?

4

2 に答える 2

5

多分これはあなたを助けるでしょう:

PCRE に基づく PHP preg 関数は、正規表現に /u オプションを追加すると Unicode をサポートします。

Unicode の正規表現から

于 2013-05-08T10:08:31.637 に答える
0

次のようにuに式を追加するだけです

$value          = 'বাংলাদেশ';
//$pattern      = '/^[\p{Bengali}]{0,100}$'; wrong
$pattern        = '/^[\p{Bengali}]{0,100}$/u'; //right
echo preg_match($pattern, $value);

それらは私たちと一緒に楽しむことができる私のような問題に直面しています。

于 2013-05-09T02:48:18.923 に答える