【问题标题】:PHP Regular Expression for Bengali Word/Sentence孟加拉语单词/句子的 PHP 正则表达式
【发布时间】:2013-05-02 12:25:30
【问题描述】:

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

【问题讨论】:

    标签: php regex codeigniter validation


    【解决方案1】:

    也许这会对你有所帮助:

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

    来自regex in Unicode

    【讨论】:

    • 是的,你是对的。自从我介绍这个网站一年半以来,非常有帮助并解决了JavaEE的正则表达式问题。但在 PHP 的意义上让我绝望了。
    【解决方案2】:

    只需在 u 后面加上如下表达式

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

    像我这样面临问题的人可以和我们一起享受。

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 2013-11-09
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      相关资源
      最近更新 更多