要删除的文字:
我正在尝试从文件中删除一行文本。
<%'/testStart'%>
和<%'/testEnd'%
&gt;之间的所有内容,包括分隔符。
<%'/testStart'%> Some text with other random characters in between <%'/testEnd'%>
JavaScript的:
我试过这个没有运气。好吧,有一次我让它使用RegExp中硬编码的所有内容。但我已经尝试了很多方法,我不记得我做了什么。基本上我认为我只是没有正确地逃避。
var p = "/test"; //this is dynamic
var start = "<%'" + p + "Start" + "'%>";
var end = "<%'" + p + "End" + "'%>";
var regex = new RegExp("\\" + start + "[^:]\\" + end);
var newData = data.replace(regex,"");
预期结果:
完全删除此行。
<%'/testStart'%> Some text with other random characters in between <%'/testEnd'%>
非常感谢任何帮助。谢谢,
答案 0 :(得分:3)
将内部与懒惰.*?
将内部部分"[^:]\\"
替换为".*?"
var regex = new RegExp( start + ".*?" + end );
效果是将所有内容与最终参数匹配。
<强>解释强>
.*?
中的星形量词由?
变为“懒惰”,因此点只匹配所需的字符数以允许下一个标记匹配(最短匹配)。如果没有?
,则.*
首先匹配整个字符串,然后仅根据需要进行回溯以允许下一个标记匹配(最长匹配)。