我尝试使用grunt-string-replace来替换2个HTML注释之间的文件内容。我所提出的工作在一条线路上工作得很好,但对于我的生活,我无法在有多条线路的地方找到它。
<!-- START COMMENT -->This matches<!-- END COMMENT -->
<!-- START COMMENT -->
this
doesn't
match
<!-- END COMMENT -->
我目前的正则表达式是
/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g
我知道用.*?
替换[\s\S]*?
(适用于单行)会允许匹配多行,但我似乎无法让它工作。
有人有什么想法吗?
更新: 作为下面提到的评论者,我的正则表达式很好,这就是我用grunt实现它的方式
//This didn't work
.....
options:{
replacements: [
{
pattern: "/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g",
replacement: '<script src="'+minJSDestination+'"></script>'
}
]
}
.....
//This does work
.....
options:{
replacements: [
{
pattern: /<!-- START COMMENT -->([\s\S]*?)<!-- END COMMENT -->/ig,
replacement: '<script src="'+minJSDestination+'"></script>'
}
]
}
.....
答案 0 :(得分:1)
在这一行:
pattern: "/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g",
您在RegEx周围有报价。删除它们,它应该工作正常:
pattern: /<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g,