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 に答える