php匹配问题

文章内容:我是中国人,我喜欢上javaeye
填写的标签:中国
显示的效果是:我是 中国 人,我喜欢上javaeye
在显示的时候,我用正则表达式进行匹配是可以实现,但是如果文章中有图片的话,如 这是一张中国风景图片,在匹配的时候也将alt里的“中国”也加上链接,结果图片不能正常显示
请教各位,如何能够不将图片进行匹配,这个正则应该怎么写,或者有什么其他的方法可以实现
[b]问题补充:[/b]
如果将
$content = '我爱1中国23中国
换成
$content = '我爱1中国2右灯中国3中国
结果alt中第一个“中国”可以转换成原来的,但第二个就不能转换,变成
我爱1中国2右灯<a href=中国" >3中国
为什么?

现在可以了
[code="php"]
/**

}
$content = '我爱1中国中国2中国3中国

我不爱1中国23中国

';
echo replaceTag($content, '中国');

[/code]

[code="php"]

/**

  • 完整的函数替换,如链接改则函数还要变化
  • 具体步骤,
  • 1、先全部替换中国
  • 2、把img标签内的中国再变回中国
  • @param string $content 用户输入的文本
  • @param string $tag 标签,如中国
  • @return string 替换后的字符串 */ function replaceTag($content, $tag) { $s = preg_replace('/('. $tag .')/', '$1', $content ); $s = preg_replace('/(]+?)'. $tag .'<\/a>/', '$1' . $tag , $s); return $s;

}
$content = '我爱1中国23中国

我不爱1中国23中国

';
echo replaceTag($content, '中国');

[/code]

第一个函数错误是因为在进行第二步转换时,只匹配了第一个链接后的中国,然后第二个函数修正了这个问题。

一定要看明白这个正则啊,理解(]+?)代表什么意思