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"));