我使用以下内容查找并替换字符串$content
中的字词:
$replacedcontent = preg_replace('/\b'.$term_name.'\b/u', '<a class="highlight">'.$term_name.'</a>', $content);
是否有一种简单的方法可以使用正则表达式来替换单词,如果它们之前没有<a href="[link to somewhere]">
标记?
答案 0 :(得分:3)
使用否定先行断言。这将替换锚标记内不存在的所有$term_name
。
preg_replace('/\b'.$term_name.'\b(?!(?:(?!<\/?a\b[^>]*>).)*?<\/a>)/u', '<a class="highlight">'.$term_name.'</a>', $content);