我正在使用 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);
无论我是否通过孟加拉语,它总是返回false
。在 JavaEE 应用程序中,我使用了这个正则表达式
\p{InBengali}
但是在 PHP 它不起作用!无论如何我如何解决这个问题?
答案 0 :(得分:4)
答案 1 :(得分:0)
只需将 u 附加到以下表达式
即可$value = 'বাংলাদেশ';
//$pattern = '/^[\p{Bengali}]{0,100}$'; wrong
$pattern = '/^[\p{Bengali}]{0,100}$/u'; //right
echo preg_match($pattern, $value);
那些像我这样的问题可能会和我们一起享受。