用正则表达式替换另一个单词

时间:2010-07-29 14:46:12

标签: php regex

我有以下代码,它生成指定文本的img标题,

让我们说标题= waterfallfountainpicture20x20,我如何用泻湖替换喷泉这样的字,以便它成为瀑布图片20x20?

preg_match_all('/<img[^>]+>/i',$html, $result);
$img = array();
foreach( $result[0] as $img_tag)
{
    preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]);
}

//print_r($img);
foreach ($img as $imgg)
 echo $imgg[2][0];

非常感谢您的帮助

2 个答案:

答案 0 :(得分:1)

因为你已经拔出了图像标签,听起来你确切地知道你要替换的是什么(静态文本),你可能更好地使用str_replace但是如果你想去正则路线......

preg_match_all('/<img[^>]+>/i',$html, $result);
$img = array();
$sub = "fountain";
$rep = "lagoon";
foreach( $result[0] as $img_tag)
{
    $img[] = preg_replace('/(title\s?=\s?["\'][^"\']*)'.$sub.'/i','${1}'.$rep,$img_tag);
}

答案 1 :(得分:0)

我不确定我是否正确理解了您的问题。您可以尝试使用preg_replace而不是preg_match_all。