PHP孟加拉字/句子正则表达式



我正在开发一个web应用程序使用PHP 5.3.x。一切都很好,但无法解决一个问题,由于正则表达式问题与孟加拉标点符号。下面是我的代码:

$value          = 'u09ACu09BEu0982u09B2u09BEu09A6u09C7u09B6';
$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中它不工作!无论如何,我如何解决这个问题?

也许这对你有帮助:

PHP preg函数是基于PCRE的,当/u选项被附加到正则表达式后,它支持Unicode。

只需在u后面加上表达式

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

那些像我一样面临困难的人可以和我们一起享受。

最新更新