Javascript 如何使用RegExp修改此字符串

Javascript 如何使用RegExp修改此字符串,javascript,regex,string,Javascript,Regex,String,我有这个字符串: 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>; 然而,上述代

我有这个字符串:

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事件和最后一个
*img事件忽略它们之间的一切


任何帮助都将不胜感激。

默认情况下,Regex是贪婪的,
+
将匹配尽可能多的文本。试着添加一个?在它之后,您的正则表达式是
/(!img!)(.+?)(!\*img!)/


问号将给出加号“lazy”行为,因此它将尝试匹配尽可能少的文本。

我没想到它有这么简单的解决方案!但是成功了:)谢谢
str.replace(/(!img!)(.+)(!\*img!)/g,  '<img src="$2" />');