0

私はこの文字列を持っています:

str = "<table><tr><td>!img! images/image1.jpeg !*img!</td><td> 12:34</td></tr><tr><td>!img! images/image2.jpeg !*img!</td><td>12:35</td><tr></table>;

!img! text.... !*img!出現するたびに置き換える必要があります<img src="text...." />

私はRegExpがあまり得意ではありません。多くのことを試しましたが、どれもうまくいきませんでした。私が思いついた最高のものは次のとおりです。

str.replace(/(!img!)(.+)(!\*img!)/g,  '<img src="$2" />');

ただし、上記のコードの問題は、最初の!img!出現と最後の!*img!出現を選択し、それらの間のすべてを無視することです!

任意の助けをいただければ幸いです。

4

1 に答える 1

1

正規表現はデフォルトで貪欲であり、.+可能な限り多くのテキストに一致します。? を追加してみてください。その後、正規表現は/(!img!)(.+?)(!\*img!)/.

クエスチョン マークはプラス記号に「怠惰な」動作を与えるため、代わりにできるだけ少ないテキストと一致させようとします。

于 2013-03-29T21:14:51.577 に答える