ここには少し奇妙なものがあります。基本的に、画像へのリンクが含まれている場合と含まれていない場合がある大量のテキストがあります。
したがって、画像のURLをうまく抽出するパターンがあるとしましょう。ただし、一致が見つかると、リンクをsrcとする要素に置き換えられます。ここでの問題は、テキスト内に複数の一致が存在する可能性があり、これがトリッキーになるところです。URL パターンが src タグの URL と一致するため、基本的には無限ループに入ります。
のようなパターンで始まらない場合、正規表現でのみ一致する方法はあり="|='
ますか? その場合、次のような URL と一致します。
some image http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=6
だがしかし
some image <img src="http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=6">
それが可能かどうかはわかりませんが、可能であれば誰かが私を正しい方向に向けることができますか? このシナリオでは、一致した URL を他の場所でも使用する必要があるため、置換だけでは十分ではなく、キャプチャのように使用する必要があります。
説明する必要がある主なシナリオは次のとおりです。
- さまざまなテキストの 1 つのブロックに含まれる多数のリンク
- 他のテキストのない単一のリンク
- 他のさまざまなテキストとの単一のリンク
== 編集 ==
URLを一致させるために使用している現在の正規表現は次のとおりです。
(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*(?:png|jpeg|jpg|gif|bmp))
==編集2 ==
ここで /g コマンドを使用できない理由を誰もが理解できるように、問題を説明する答えを示します。最初に試したようにこの /g を使用できれば、物事はずっと簡単になります。