2013-05-08 32 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); 

那些正面臨的問題和我一樣能和我們一起享受。