HTML ドキュメントのコンテンツを含む文字列が渡され、ドキュメント内に含まれる URL の一部を変更する必要があります。変更が必要な URL は、次の形式で始まります。
<script src="https://foo.com/some/variable/path/to/file.js" ...
次のように変更する必要があります。
<script src="https://foo.com/some/variable/path/to/NEW/file.js" ...
私の現在のアプローチは、正規表現でGoogle の RE2の GlobalReplace 関数を使用することです。
"(?i)(<script\\s+(?:[^>]+\\s+)?src=[\"']https://foo\\.com/"
"(?:.*?/)*?)(.*?\\.js[\"'][^>]*>)"
私が与えられた HTML の URL の一部が既に変更されていて、一部が変更されていない可能性があることに気付くまでは、これはほとんど機能します。前者はそのままにしておく必要があります。
質問: アップストリームで既に変更されている URL を変更せずに URL を変更する最も簡単な方法は何ですか?
シングルパスアプローチが不可欠です。