有很多URL查找regEx,我可能错过了一个技巧,可以找出如何使它们适应我的需求,但RegEx和我没有上瘾。
情况:我正在使用PHP / mySQL加载动态内容,其中包含我需要修改的各种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" />
非常感谢,我知道你们可以做到!
答案 0 :(得分:0)
您正在寻找lookaround assertions。试试这个
(?<=img src=").*?(?=images\/)
并替换为空字符串。
基本上,您使用.*?
尽可能少地匹配任何字符(换行符除外),其中(?<=img src=")
确保左侧有img src="
,(?=images\/)
确保在那里在右边是images\/
。
以(...)
开头的群组?<=
称为正向后置断言,以?=
开头的群组称为正向前瞻断言
答案 1 :(得分:0)
使用此:
preg_replace("/src=\"(.*?)\/images/", "src=\"images", $string)