2013-09-24 80 views
0

我已經搜索谷歌和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')"

等等。

這裏什麼我tryed我可憐的正則表達式 「skils」

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

讓我在 「URL」 功能的URL。

在此先感謝!

+1

*我也嘗試過自己*,請分享一下..你已經20K ^,我們可以期待這個從你 –

+0

:)你是對的。我延長我的問題。 – dknaack

回答

1

那麼,你可以嘗試的正則表達式:

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

並將其替換:

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

regex101 demo

(['"])?將捕獲的報價,如果他們存在,並在\1?

再次使用

([^'"]+)將捕獲url本身。