要删除的文本:
我正试图从文件中删除一行文本。<%'/testStart'%>
和<%'/testEnd'%
>`之间的所有内容,包括分隔符。
<%'/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'%>
非常感谢您的帮助。谢谢,
用懒惰的.*?
内部匹配
用".*?"
替换内部"[^:]\"
var regex = new RegExp( start + ".*?" + end );
其效果是将所有内容都匹配到结束参数。
解释
.*?
中的星形量词被?
设置为"惰性",因此点只匹配所需的字符数量,以允许下一个标记匹配(最短匹配(。在没有?
的情况下,.*
首先匹配整个字符串,然后仅根据需要回溯,以允许匹配下一个令牌(最长匹配(。