html源代码如下:
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title></title>
    <!--deletebegin-->
    <script src="../../../js/jquery-1.9.1.min.js" type="text/javascript"></script>
    <!-- deleteend-->
    <script src="../../../js/base.js" type="text/javascript"></script>
    <script type="text/javascript">
        function test() {
            $('#divAn').animate({ right: "50%" });
        }
        function test1() {
            $('#divAn').animate({ right: "50%" });
        }
        //deletebegin
        function test2() {
            $('#divAn').animate({ right: "50%" });
        }
        function test3() {
            $('#divAn').animate({ right: "50%" });
        }
        //deleteend
    </script>
</head>
<body>
    <div id="divAn" style="width: 100px; height: 100px; background-color: Red; right: 20px;
        position: absolute;">
    </div>
    <div>
        1111111</div>
    <div>
        222222</div>
    <div>
        3333333</div>
    <!--deletebegin-->
    <div>
        4444
        <div>
            55555</div>
    </div>
    <!--deleteend-->
    <input id="Button1" type="button" value="button" onclick="test();" />
</body>
</html>
要去除 "<!--deletebegin-->"和 "<!--deleteend-->"包含的任何html内容,以及"//deletebegin"和" //deleteend"包含的任何js函数.用c#或者js的正则都行,谢谢各位帮助html正则表达式

解决方案 »

  1.   


    try:
    Regex.Replace(html, @"(?<=<!--deletebegin-->).*(?=<!--deleteend-->)", "");
    Regex.Replace(html, @"(?<=//deletebegin).*(?=//deleteend)", "");
      

  2.   

    (?is)(?<=(<!--deletebegin-->|//deletebegin)).*?(?=(<!-- deleteend-->|//deleteend))Regex.Replace(html, @"(?is)(?<=(<!--deletebegin-->|//deletebegin)).*?(?=(<!-- deleteend-->|//deleteend))", "");
      

  3.   

    正则表达式 一看就头晕....
    我写个c#的吧  简单易懂    private string ReplaceBeginToEnd(string str)
            {
                string strBeginMark = "<!--deletebegin-->";
                string strEndMark = "<!--deleteend-->";            StringBuilder sbResult = new StringBuilder();            while (str.IndexOf(strBeginMark) >= 0)
                {
                    sbResult.Append(str.Substring(0, str.IndexOf(strBeginMark)));
                    str = str.Remove(0, str.IndexOf(strEndMark) + strEndMark.Length);
                }            sbResult.Append(str);            return sbResult.ToString();
              
            }
      

  4.   

    var reg=/(<!--|\/\/)\s*deletebegin\s*(-->)?[\s\S]*?\1\s*deleteend\s*\2/gi;
    yourhtml=yourhtml.replace(reg,'');替换后结果:
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
        <title></title>
        <!--deletebegin-->
        <script src="../../../js/jquery-1.9.1.min.js" type="text/javascript"></script>
        <!-- deleteend-->
        <script src="../../../js/base.js" type="text/javascript"></script>
        <script type="text/javascript">
            function test() {
                $('#divAn').animate({ right: "50%" });
            }
            function test1() {
                $('#divAn').animate({ right: "50%" });
            }
            //deletebegin
            function test2() {
                $('#divAn').animate({ right: "50%" });
            }
            function test3() {
                $('#divAn').animate({ right: "50%" });
            }
            //deleteend
        </script>
    </head>
    <body>
        <div id="divAn" style="width: 100px; height: 100px; background-color: Red; right: 20px;
            position: absolute;">
        </div>
        <div>
            1111111</div>
        <div>
            222222</div>
        <div>
            3333333</div>
        <!--deletebegin-->
        <div>
            4444
            <div>
                55555</div>
        </div>
        <!--deleteend-->
        <input id="Button1" type="button" value="button" onclick="test();" />
    </body>
    </html>
      

  5.   

    囧,帖错了:
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
        <title></title>
         
        <script src="../../../js/base.js" type="text/javascript"></script>
        <script type="text/javascript">
            function test() {
                $('#divAn').animate({ right: "50%" });
            }
            function test1() {
                $('#divAn').animate({ right: "50%" });
            }
             </script>
    </head>
    <body>
        <div id="divAn" style="width: 100px; height: 100px; background-color: Red; right: 20px;
            position: absolute;">
        </div>
        <div>
            1111111</div>
        <div>
            222222</div>
        <div>
            3333333</div>
         
        <input id="Button1" type="button" value="button" onclick="test();" />
    </body>
    </html>
      

  6.   

                string pattern = @"(?is)(?<=<body.*?<!--deletebegin-->).*?(?=<!--deleteend-->)|(?<=//deletebegin).*?(?=//deleteend)";
      

  7.   

    不行,谢谢
    js的替换,结果是对的,但是使用C# Regex替换,没有把第一个script替换下来,谢谢使用C# Regex替换,没有把第一个script替换下来,其他的都替换成功了,谢谢
      

  8.   

    要去除 "<!--deletebegin-->"和 "<!--deleteend-->"包含的任何html内容
    javascript属于html?
    如果将<script src="../../../js/jquery-1.9.1.min.js" type="text/javascript"></script>
    去掉,
    正则表达式删除"<body.*?"
      

  9.   

    不好意思,我描述错了,是要:要去除 "<!--deletebegin-->"和 "<!--deleteend-->"包含的任何内容