preg_replace函数和阿拉伯的preg_match字符[重复](preg_replace a

2019-06-27 04:35发布

可能重复:
如何添加阿拉伯语字母网址正则表达式

我一直在寻找了几个小时没有答案。

如何使用阿拉伯语字符的preg_replace以及英语?

这是我的代码是英语

$string = preg_replace ( "/&([a-zA-Z])(uml|acute|grave|circ|tilde|ring),/", "", $string );
$string = preg_replace ( "/[^a-zA-Z0-9_.-]/", "", $string );

一些答案建议我使用此代码:

$string = preg_replace ( "/&([أ-يa-zA-Z])(uml|acute|grave|circ|tilde|ring),/u", "", $string );
$string = preg_replace ( "/[^أ-يa-zA-Z0-9_.-]/u", "", $string );

我测试了它和它的作品。 但其实这功能为PHP? 它包括所有阿拉伯字符? 有没有更好的办法,包括所有阿拉伯字符?

我今天的代码做的是:

该字符串有效的搜索引擎友好的字符全部替换字符。

我使用基于此代码解决了这个问题http://www.unicodemap.org 。 谢谢布莱恩。

$string = preg_replace ( "/&([\x{0600}-\x{06FF}a-zA-Z])(uml|acute|grave|circ|tilde|ring),/u", "", $string );
    $string = preg_replace ( "/[^\x{0600}-\x{06FF}a-zA-Z0-9_.-]/u", "", $string );

Answer 1:

在Unicode字符映射为可视化字符,包括阿拉伯语,该字符串的第一部分与分组为你的组一个伟大的地方[أ-يa-zA-Z]

如果你仍然不确定,阅读起来更上一个小的正则表达式 。



Answer 2:

这是我在你的范围内看到的是,你有[أ-ي]我知道右边的一个是阿拉伯语,第一个字母。 我不熟悉的第一个,但我想这有点像最后一个字符。 如果是这样的话,因为PHP语言是英语,你可能想改变你的范围的方向为[ي-أ]代替。

此外,对于正常化,我会用Unicode字符范围,而不是像布莱恩建议。



文章来源: preg_replace and preg_match arabic characters [duplicate]