![](/img/trans.png)
[英]How do I use a JS regexp to match a string only if the regexp matches the entire string(no substring)
[英]How do i modify this string with RegExp
我有这个字符串:
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! text.... !*img!
与<img src="text...." />
我对RegExp不太满意,我尝试了很多事情,但没有任何效果,我能想到的最好的方法是:
str.replace(/(!img!)(.+)(!\*img!)/g, '<img src="$2" />');
但是上述代码的问题在于它选择了第一个!img!
发生和最后!*img!
发生无视他们之间的一切!
任何帮助,将不胜感激。
正则表达式默认为贪婪, .+
将匹配尽可能多的文本。 尝试添加一个? 之后,以便您的正则表达式为/(!img!)(.+?)(!\\*img!)/
。
问号将使加号具有“惰性”行为,因此它将尝试匹配尽可能少的文本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.