有很多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'/
。
以?<=
开始的组(...)
被称为正向向后断言,以?=
开始的组被称为正向向前断言