正则表达式-替换网址

时间:2018-12-05 16:01:26

标签: php regex

我的字符串$ content中有许多URL:

<a href="https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg" alt="sample Wokal 2" width="933" height="617" /></a>

<a href="https://domain/wp-content/uploads/2014/01/sample-lato-123.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/uploads/2014/01/sample-lato-123.jpg" alt="sample lato 123" width="933" height="617" /></a>

是否可以将所有链接替换为: -https://domain/files/sample-lato-123.jpg, -https://domain/files/sample-Wokal-2.jpg

等吗?

该怎么做? 我尝试了str_replace-但是我有不同类型的链接,但我不知道如何替换它们。我不知道正则表达式:(

请帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式进行环顾,以确保需要替换的字符串确实是我们想要的字符串,

(?<=domain).*?(?=sample)

并替换为

/files/

这是示例PHP代码,

$str = '<a href="https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/wp-content/uploads/2018/07/sample-Wokal-2.jpg" alt="sample Wokal 2" width="933" height="617" /></a>\n<a href="https://domain/wp-content/uploads/2014/01/sample-lato-123.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/uploads/2014/01/sample-lato-123.jpg" alt="sample lato 123" width="933" height="617" /></a>';
echo preg_replace('/(?<=domain).*?(?=sample)/', '/files/', $str);

打印

<a href="https://domain/files/sample-Wokal-2.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/files/sample-Wokal-2.jpg" alt="sample Wokal 2" width="933" height="617" /></a>\n<a href="https://domain/files/sample-lato-123.jpg"><img class="alignright size-full wp-image-6608" src="https://domain/files/sample-lato-123.jpg" alt="sample lato 123" width="933" height="617" /></a>

让我知道这是否适合您。