gpt4 book ai didi

JavaScript、动态正则表达式、替换分隔符之间的所有内容(包括分隔符)

转载 作者:行者123 更新时间:2023-11-29 19:36:58 25 4
gpt4 key购买 nike

要删除的文本:


我正在尝试从文件中删除一行文本。<%'/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 );

效果是匹配所有直到结束参数。

解释

.*? 中的星号量词被 ? 设置为“惰性”,因此点仅匹配所需数量的字符以允许下一个标记匹配(最短匹配)。如果没有 ?.* 首先匹配整个字符串,然后仅回溯到允许下一个标记匹配所需的位置(最长匹配)。

关于JavaScript、动态正则表达式、替换分隔符之间的所有内容(包括分隔符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com