正则表达式匹配一个网址并替换为另一个网址

时间:2014-04-20 05:50:03

标签: php regex

直升机,

我是一名正规表达菜鸟,试图在线查找资源,但语言对我来说太陌生了。感谢是否有人可以帮助阐明这一点。

基本上,我已经成功地使用dom方法在随机字符串中使用getAttribute('src')在“img”标签中查找图像网址。

示例:

$string = '<a><img src=http://123.com/123.jpg/></a><img src=http://test.com/test.jpg/>'; //some random string
$url = get_img_url($string) //function of getting a url from a string.

现在迎来了挑战。如何将$ url替换为另一个url,比如$ url2?然后保存到$ newstring?我曾想过使用preg_replace,但我该怎么做呢?

$url2 = 'http://example.com/content_image/blogger_1.jpg';
$find = ???                 //find $url i gotten in the function above in $string
$replace = ???              //replace with $url2
$newstring = preg_replace($find, $replace, $string);

任何帮助将不胜感激!谢谢你们!

编辑: 附上所需的输出,感谢Amit Joki!

echo $newstring;

结果将是:

<a><img src=http://example.com/content_image/blogger_1.jpg/></a><img src=http://test.com/test.jpg/>

2 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

(<img.+?src=)(.+?)(\s|>)

并将其替换为:

$1http://example.com$3

Demo

我不知道php,但你必须这样做:

preg_replace($pattern, $replacement, $string);

其中$pattern是我的正则表达式,$replacement是我的替换字符串,而$string是您的输入字符串。

答案 1 :(得分:0)

您可以匹配以下正则表达式:

<img src=([^\>]*)>

并替换为

<img src=new link>

演示:http://regex101.com/r/oK7fZ2