2017-12-17 12 views
0

私の目標は、2つの画像間の線がある場合にのみ(私の正規表現が正常に動作しますJSとregex:すべてのimgを[src]で置き換えますか?

[https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif] [https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif] 

https://regex101.com/r/ZPOCCe/1

で[ソース]のみ

hello <img class="gif" src="https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif" title="1"> hello  
world <img class="gif" src="https://media2.giphy.com/media/zU4MLqeDvGA0M/100.gif" title="2"> hello2 

によってすべてのタグを置き換えることです。それは貪欲であるように見える)

何か考えていますか?

+0

貪欲でない設定に加えて、 '。*'を1つまたは複数の非マッチャー '[^"] * 'に置き換えることでセーフガードを追加することもできます。バックリファレンスを使用して、https: //regex101.com/r/4RGCjo/1しかし、実際には非常に難しいのは、引用符なしで有効なsrc属性を持つことができ、lookaheadsのようなものが必要な場合があるからです。 –

+0

regexを自分で書くのではなく、実際のhtmlパーサー?ブラウザ自体のように。 –

答えて

0

.*?(疑問符を後ろに付ける)を使用すると、貪欲ではなく正規表現を怠け者にすることができます(ちょうど.*)。

関連する問題