正则表达式:
!(<a.*</a>.*)*Paris!isU
更换:
$1<a href="Paris">Paris</a>
$ 1参照第一个子模式(至少在PHP中)。根据您使用的语言,它可能会略有不同。
这应该用替换中的链接替换“巴黎”的所有发生。它只是检查在“巴黎”之前是否关闭所有开放的a-Tags。
PHP例子:
<?php
$s = 'i\'m living <a href="Paris" atl="Paris link">in Paris</a>, near Paris <a href="gare">Gare du Nord</a>, i love Paris.';
$regex = '!(<a.*</a>.*)*Paris!isU';
$replace = '$1<a href="Paris">Paris</a>';
$result = preg_replace($regex, $replace, $s);
?>
增加:
这不是最好的解决方案。这种正则表达式不起作用的一种情况是当你有一个img-Tag,它不在a-Element内。当您将该图像的标题 - 属性设置为“巴黎”时,该“巴黎”也将被替换。这不是你想要的。尽管如此,我仍然无法用简单的正则表达式完全解决您的问题。
如果你想青睐返回的人帮助你,登录,对于有用的答案投票和接受,解决你的问题之一(如果有一个做的)。 – Tomalak 2008-11-09 17:32:01