Javascript 正在查找正则表达式以从字符串中删除文本

Javascript 正在查找正则表达式以从字符串中删除文本,javascript,regex,Javascript,Regex,我需要从带有开始和结束标签的大字符串中删除一些文本。例如: ... // THIS IS START .. .. // THIS IS END ... 上述文本保存在变量中。我需要删除所有以//这是start到//这是END开头的文本。我知道我可以通过将字符串拆分成行并逐行解析来删除它们。但我正在寻找更好的解决方案。我是否可以使用regex来实现这一点?对我来说,困难的部分是使用变量作为开始/结束标签 使用.replace搜索这是开始,惰性重复任何字符,直到这是结束: conststr=`。

我需要从带有开始和结束标签的大字符串中删除一些文本。例如:

...
// THIS IS START
..
..
// THIS IS END
...

上述文本保存在变量中。我需要删除所有以
//这是start
//这是END
开头的文本。我知道我可以通过将字符串拆分成行并逐行解析来删除它们。但我正在寻找更好的解决方案。我是否可以使用
regex
来实现这一点?对我来说,困难的部分是使用变量作为开始/结束标签

使用
.replace
搜索
这是开始
,惰性重复任何字符,直到
这是结束

conststr=`。。。
//这是开始
..
福
..
//到此为止
...
之间
...
//这是开始
..
酒吧
..
//这是结束`;

log(str.replace(/(\/\/这是开始)[\s\s]+?(\/\/这是结束)/g,“$1\n$2”)这是一个相当简单的案例。您需要屏蔽
/
并确保在开始标签和结束标签之间将“尽可能短的”字符串与
[^]*?
表达式(
*?
不允许换行!)匹配,否则就很简单了

编辑后(在@revo提示后):

字符类
[^]
允许所有字符,包括换行符等。

我认为应该是这样的(带gs选项)


FYI,
s
是ECMAScript 2018的扩展。谢谢我如何将开始和结束变为变量?您可能想用
[\s\s]*?
替换
*?
。啊,是的,当然,谢谢您的提醒!我没有抓住那一点。我只是忘了处理换行符:D…最后一次编辑请参见
string.replace(/\/\/ THIS IS START[^]*?\/\/ THIS IS END/g,'')
var str = `
// THIS IS START
..
// THIS IS END`;
console.log(str.replace(/\/\/ THIS IS START\n(.+)\/\/ THIS IS END/gs, "$1"));