我需要定义一个pcre regexp,以便在drupal spam module中使用阿拉伯语/波斯语字母表中的某些垃圾单词。问题是,通常的pcre regexp显然无法在阿拉伯字母中找到模式。
例如,while/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"
它也运行得很好。确保将文件(和转换输入数据)保存在(到)utf-8中。