使用正则表达式替换不在超链接标记内的文本


Using a regular expression to replace text that is not inside hyperlink markup

可能重复:
如何替换链接标记中没有的字符串?

嗨,有人能帮我学习正则表达式吗

这是我想取代的单词

$text = '<a href="test-pregnancy.net">pregnancy<a> week by week, some time pregnancy can be very easy';
$search = 'pregnancy';
$replace = '<a href="google-pregnancy.net">pregnancy</a>';
print preg_replace('/('.$search.')/', $replace, $text);

除了链接中包含的单词之外,还有什么正则表达式吗?仅替换链接中不包含的单词

我希望它像这个

$text = '<a href="test-pregnancy.net">pregnancy</a> week by week, some time <a href="test-pregnancy.net">pregnancy</a> can be very easy';

如果情况是这样的。

$text = '<a href="test-pregnancy.net" title="welcome pregnancy people">pregnancy<a> week by week, some time pregnancy can be very easy';

这也将取代href标题中的怀孕。还有其他想法吗。我想要一个在标记中使用异常的正则表达式。

替换:

$search =  'pregnancy';

带有:

$search =  ' pregnancy ';

您应该使用HTML解析器来查找不属于a元素的文本。请参阅:http://simplehtmldom.sourceforge.net/