如何使用RegEx修改此字符串

时间:2013-03-29 21:11:37

标签: 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>;

我需要将每个!img! text.... !*img!替换为<img src="text...." />

我对RegExp不是很了解,我尝试了很多东西,但都没有用,我能想到的最好的是:

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

然而,上述代码的问题在于它选择了第一个!img!次出现和最后!*img!次出现,忽略了它们之间的所有内容!

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

问号会给加号&#34;懒惰&#34;行为,所以它会尝试匹配尽可能少的文本。