如何在php中使用preg_replace中的所有字母表中的各种字母?

时间:2018-03-22 04:47:58

标签: php regex

问题:enter image description here

基本上,当它看到正则表达式不允许的字母类型时,它会与链接混淆。

我在php中的函数将从数据库中读取的名称转换为链接:

function convertActor($str) {
$regex = "/([a-zA-Z-.' ])+/";
$str = preg_replace($regex, "<a href='/pretraga.php?q=$0' title='$0' class='actor'>$0</a>", $str);
return $str;

}

我还想允许空格,短划线,点和单引号。

提前致谢。

3 个答案:

答案 0 :(得分:0)

以下正则表达式应该适合你

[^\u0000-\u007F ]|[a-zA-Z-.' ]\g

[^ \ u0000- \ u007F]:将匹配所有非英文Unicode字符。

<强> [A-ZA-Z-“。 ]:将匹配英文字母

对于PHP,请使用[^\\u0000-\\u007F]|[a-zA-Z-.']

答案 1 :(得分:0)

你可以试试这个:

$regex = "/(?:[a-zA-Z.\-' ]|[^\\u0000-\\u007F,])+/";

régime, Coffehouse Coder, Apple转换为
'<a href='/pretraga.php?q=régime' title='régime' class='actor'>régime</a>,<a href='/pretraga.php?q= Coffehouse Coder' title=' Coffehouse Coder' class='actor'> Coffehouse Coder</a>,<a href='/pretraga.php?q= Apple' title=' Apple' class='actor'> Apple</a>'

此处regex101.com

答案 2 :(得分:0)

对于正在寻找解决方案的每个人,我找到了这个临时解决方案:

$regex = "/([\w-.' \á-\ÿ])+/";

没有点和东西,但有空格:

$regex = "/([a-zA-Z \á-\ÿ])+/";

<强>干杯