我搜索了谷歌和stackoverflow但没有找到一个好的答案。我也是自己尝试过的,但我没有正则表达的大师。
我的目标是用绝对版本替换html样式标记中的所有相对网址。
e.g。
style="url(/test.png)"
与style="url(http://mysite.com/test.png)"
style="url("/test.png")"
与style="url("http://mysite.com/test.png")"
style="url('/test.png')"
与style="url('http://mysite.com/test.png')"
style="url(../test.png)"
与style="url(http://mysite.com/test.png)"
style="url("../test.png")"
与style="url('http://mysite.com/test.png')"
style="url('../test.png')"
与style="url('http://mysite.com/test.png')"
等等。
这里我尝试使用我的可怜的正则表达式“skils”
url\((?<Url>[^\)]*)\)
给我“url”功能中的url。
提前感谢!
答案 0 :(得分:1)
好吧,你可以试试正则表达式:
style="url\((['"])?(?:\.\.)?(?<url>[^'"]+)\1?\)"
并替换为:
style="url($1http://mysite.com$2$1)"
(['"])?
会捕获引号,如果它们存在并在\1?
([^'"]+)
将捕获网址。