如何为阿拉伯字符定义 libpcre 正则表达式?
我需要为阿拉伯/波斯字母中的某些垃圾邮件单词定义 PCRE 正则表达式,以便在 drupal 垃圾邮件模块< /a>.问题是通常的 PCRE 正则表达式显然无法找到阿拉伯字母中的模式。
例如,虽然 /bad word/ 标记“坏词”的实例,但
/کلمه بد/i
无法标记“坏词”。
I need to define a PCRE regexp for certain spam-ish words in Arabic/Persian alphabet to be used in drupal spam module. The problem is that the usual PCRE regexp is apparently unable to find patters in Arabic alphabets.
For example, while /bad word/ flags instances of 'bad word', but
/کلمه بد/i
Is unable to flag 'کلمه بد'.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我使用
u
(Unicode) PCRE 修饰符,我对此没有问题:它运行得很好 IDEOne.com 上也有。请务必以 UTF-8 格式保存文件(并将输入数据转换为)。
I have no problem with that if I use the
u
(Unicode) PCRE modifier:It runs just fine on IDEOne.com too. Be sure to save your files (and convert input data) in (to) UTF-8.
仅当源文件中包含
use utf8;
时,Perl 源代码中的文字 Unicode 文本才会被正确识别。如果您的数据已正确解码,您可以执行
/\x{644}/
,并且可以在没有
utf8
pragma 的情况下执行,但如果您想做 < code>/ä/ 那么你需要使用utf8
。有道理吗?Literal Unicode text in Perl source will only be recognized properly if the source file has
use utf8;
in it.You can do
/\x{644}/
and you can doand either will work without the
utf8
pragma if your data is properly decoded, but if you want to do/ل/
then you needuse utf8
. Make sense?