C# Regex将从asp.net Webform中删除HTML注释,但保留#include和knockout语句
我想缩小asp.net中的asp.net Web表单页面。 因此,在部署之前,我使用这个 根据该实用程序,它将删除HTML和敲除注释,而不管是否忽略敲除注释。它还将从aspx中删除#include文件 1. <!-- normal html comments --> 2. <!-- ko if:knockoutComments() --> 3. <!-- /ko --> 4. <!-- #include file="" --> 1. 2. 3. 4. 我只需要替换第一个语句。C# Regex将从asp.net Webform中删除HTML注释,但保留#include和knockout语句,c#,asp.net,regex,knockout.js,webforms,C#,Asp.net,Regex,Knockout.js,Webforms,我想缩小asp.net中的asp.net Web表单页面。 因此,在部署之前,我使用这个 根据该实用程序,它将删除HTML和敲除注释,而不管是否忽略敲除注释。它还将从aspx中删除#include文件 1. <!-- normal html comments --> 2. <!-- ko if:knockoutComments() --> 3. <!-- /ko --> 4. <!-- #include file="" --> 1. 2. 3. 4
欢迎所有可行的正则表达式和非正则表达式解决方案。这里有一个合适的正则表达式:
<!-- (?!(ko|\/ko|#include)).*? -->
可能最好使用knockout源代码内部使用的正则表达式:
var startCommentRegex=commentNodeSaveTextProperty
? /^$/
:/^\s*ko(?:\s+([\s\s]+)?\s*$/;
var endCommentRegex=commentNodesHaveTextProperty
? /^$/
:/^\s*\/ko\s*$/;
您必须将它们重写为您正在使用的js正则表达式语法以外的任何语法
来源:非常感谢!你救了我一天:)@sushilkanojia没问题,这就是为什么;)请记住向上投票并标记正确答案!祝您有个美好的一天
var startCommentRegex = commentNodesHaveTextProperty
? /^<!--\s*ko(?:\s+([\s\S]+))?\s*-->$/
: /^\s*ko(?:\s+([\s\S]+))?\s*$/;
var endCommentRegex = commentNodesHaveTextProperty
? /^<!--\s*\/ko\s*-->$/
: /^\s*\/ko\s*$/;