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);

无论我是否通过孟加拉语单词,它总是返回false。在JavaEE应用程序中,我使用了这个正则表达式

\p{InBengali}

但是在PHP中它不起作用!无论如何我该如何解决这个问题?

4

2 回答 2

5

也许这会帮助你:

当 /u 选项附加到正则表达式时,基于 PCRE 的 PHP preg 函数支持 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 回答