0

我在 google 和 stackoverflow 上搜索过,但没有找到好的答案。我自己也尝试过,但我不是正则表达式大师。

我的目标是用绝对版本替换 html 样式标签中的所有相对 url。

例如

  • 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')"

等等。

这是我用我可怜的正则表达式“技能”尝试的

url\((?<Url>[^\)]*)\)

给我“url”函数中的url。

提前致谢!

4

1 回答 1

1

好吧,你可以试试正则表达式:

style="url\((['"])?(?:\.\.)?(?<url>[^'"]+)\1?\)"

并替换为:

style="url($1http://mysite.com$2$1)"

正则表达式101演示

(['"])?如果它们存在,将捕获报价并再次使用它们\1?

([^'"]+)将捕获 url 本身。

于 2013-09-24T15:01:13.047 回答