我在斯洛伐克语中有两个非常相似的表达式有问题。我正在尝试替换html链接的表达式,这是我下面的示例代码。我在数组中有大约90个单词。
// mysql query above.
for($i=1;$i<=$datas[1];$i++) {
$regex[] = '/('.htmlentities($rows['title'], ENT_QUOTES, 'UTF-8').')/i';
$wrl[] = '<a href="'.URL.'link/'.urlencode($rows['alias']).'" class="underscored">'.strtolower($rows['title']).'</a>';
}
$content = preg_replace($regex, $wrl, $content);
但我有一个非常相似的问题; (nenasytene mastne kyseliny,nasytene mastne kyseliny)。 preg_replace从较长的单词中删除 ne ,这会导致单词链接到错误的文章。
答案 0 :(得分:1)
尝试修改正则表达式,以便在要用链接替换的短语之前和之后指定单词边界\b
:
$regex[] = '/\b('.htmlentities($rows['title'], ENT_QUOTES, 'UTF-8').')\b/i';
答案 1 :(得分:0)
您可以使用\W
前缀和附加正则表达式:
$regex[] = '/\W('.htmlentities($rows['title'], ENT_QUOTES, 'UTF-8').')\W/i';