编程语言
首页 > 编程语言> > php-如何为阿拉伯字符定义libpcre正则表达式?

php-如何为阿拉伯字符定义libpcre正则表达式?

作者:互联网

我需要为要在drupal spam module中使用的阿拉伯语/波斯语字母中的某些垃圾邮件单词定义PCRE正则表达式.问题是通常的PCRE正则表达式显然无法找到阿拉伯字母中的模式.

例如,虽然/ bad word /标记了“ bad word”的实例,但是

/کلمه بد/i

无法标记“کلمهبد”

感谢您为解决此问题所提供的帮助.

解决方法:

如果使用u(Unicode)PCRE修饰符,我对此没有任何问题:

$string = 'کلمه بد';

if (preg_match('~\p{Arabic}~u', $string) > 0)
{
    var_dump('contains Arabic characters');

    if (preg_match('~کلمه بد~ui', $string) > 0)
    {
        var_dump('contains spam-ish Arabic characters');
    }
}

string(26) "contains Arabic characters"
string(35) "contains spam-ish Arabic characters"

它也可以很好地运行on IDEOne.com.确保将文件保存(并转换输入数据)为UTF-8.

标签:utf-8,arabic,drupal-6,php,regex
来源: https://codeday.me/bug/20191102/1992967.html