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

时间:2013-05-08 10:04:29

标签: php regex codeigniter validation

我正在使用 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 它不起作用!无论如何我如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

也许这会对你有所帮助:

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

来自regex in Unicode

答案 1 :(得分:0)

只需将 u 附加到以下表达式

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

那些像我这样的问题可能会和我们一起享受。