我是一篇文章 我希望文章中的任何地方都能将我的文字分类,这个词会自动链接到该类别 我是通过preg_replace这样做的
$text = preg_replace('(hello|word1|word2)', '<a href="'.$link1.'">word</a>', $text);
$text = preg_replace('(word3|hello word|word4)', '<a href="'.$link2.'">word</a>', $text);
但是当'&#34; hello world&#34;存在于纸上,&#34;你好&#34;是&#34; $ link1&#34;的链接和&#34;字&#34;无法链接
答案 0 :(得分:0)
您可以使用否定前瞻(?! )
功能在第一个正则表达式中不匹配hello
字符串后跟world
字符串,如下例所示:
$text = preg_replace('(hello(?! world)|word1|word2)', '<a href="'.$link1.'">word</a>', $text);
$text = preg_replace('(word3|hello world|word4)', '<a href="'.$link2.'">word</a>', $text);
PS:请注意您的第二个正则表达式中存在拼写错误:hello word
而不是hello world
参考文献:
http://www.regular-expressions.info/lookaround.html http://php.net/manual/en/reference.pcre.pattern.syntax.php