正则表达式有助于替换动态内容中的url元素


Regular expression help for replacing elements of urls within dynamic content

有很多URL可以找到regEx,我可能错过了一个技巧,无法找到如何使它们适应我的需求,但regEx和我相处不好。

情况:我正在用PHP/mySQL加载动态内容,其中包含我需要修改的带有src的各种img标记。

例如:

Blah blah <img src="/oldsite/images/image1.gif" alt="image blah" title="image blah" /> blah blah <img src="/otheroldsite/images/image2.gif" alt="image blah" title="image blah" />

我需要删除img src="和images/…之间的任何内容。。。。"任何东西"是这里的关键,因为我在内容中可能有一系列的"根文件夹"

以结束

Blah blah <img src="images/image1.gif" alt="image blah" title="image blah" /> blah blah <img src="images/image2.gif" alt="image blah" title="image blah" />

非常感谢,我知道你们能做到!

使用此:

preg_replace("/src='"(.*?)'/images/", "src='"images", $string)

您正在查找查找断言。试试这个

(?<=img src=").*?(?=images'/)

并替换为空字符串。

在Regexr 上查看

基本上,您将尽可能少的任何字符(换行符除外)与.*?匹配,其中(?<=img src=")确保左侧有img src="(?=images'/)确保右侧有images'/

?<=开始的组(...)被称为正向向后断言,以?=开始的组被称为正向向前断言