2013-05-08 52 views
1

我正在使用PHP 5.3.x开发一个Web应用程序。一切工作正常,但由于孟加拉标点符号的正则表达式问题而无法解决问题。以下是我的代码:孟加拉语单词/句子的PHP正则表达式

$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

也许这将帮助你:

PHP的预浸料的功能,这是基于PCRE,支持Unicode时/ u选项被添加到正则表达式。

regex in Unicode

+0

是的你是对的。自从我介绍这个网站一年半以来,对JavaEE的正则表达式问题非常有帮助和解决。但从PHP的意义上来说,这让我无望。 – 2013-05-08 11:07:27

0

只需追加ü与表达如下

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

那些正面临的问题和我一样能和我们一起享受。