基本上,当它看到正则表达式不允许的字母类型时,它会与链接混淆。
我在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;
}
我还想允许空格,短划线,点和单引号。
提前致谢。
答案 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 \á-\ÿ])+/";
<强>干杯强>