我想匹配所有的
<script type="text/javascript"><!--
width=200
</script>
<script type="text/javascript"
src="../main.js" >
</script>但不想匹配
<script type="text/javascript"><!--
width=100
</script>
<script type="text/javascript"
src="../main.js" >
</script>

解决方案 »

  1.   


    MatchCollection mc = Regex.Matches(yourStr,@"(?is)<script type="text/javascript"><!--
    width=200.+?</script>.+?</script>");
    foreach(Match m in mc)
    {
        //m.Value;
    }
      

  2.   

    MatchCollection mc = Regex.Matches(yourStr,@"(?is)<script type=""text/javascript""><!--\s*width=200.+?</script>.+?</script>");
    foreach(Match m in mc)
    {
        //m.Value;
    }
      

  3.   

    不好用,我上边的是省略了一部分代码,为了突出重点,现在看来起反作用了。
    我想匹配所有的
    <script type="text/javascript"><!--
    google_ad_client = "pub-3381531532877741";
    /* 728x90, 创建于 10-12-1 */
    google_ad_slot = "7423315034";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type="text/javascript"
    src="../pagead2.googlesyndication.com/pagead/show_ads.js" >
    </script>但不匹配
    <script type="text/javascript"><!--
    google_ad_client = "pub-3381531532877741";
    /* 120x600, sidebar_big */
    google_ad_slot = "9995842720";
    google_ad_width = 120;
    google_ad_height = 600;
    //-->
    </script>
    <script type="text/javascript"
    src="../pagead2.googlesyndication.com/pagead/show_ads.js" >
    </script>他们之间的区别是google_ad_width,所以刚才我简写了,我现在用
    <script(.*\s*){10}</script>
    能把两个都匹配到,但我只想匹配宽度google_ad_width=728的所有,注意有回车符哈
      

  4.   

    这个……
    你想要做什么,用Jquery做不到吗?
      

  5.   

    MatchCollection mc = Regex.Matches(yourStr,@"(?is)<script.*?google_ad_width\s*=\s*728.*?</script>.*?</script>");
    foreach(Match m in mc)
    {
        //m.Value;
    }
      

  6.   

    这是正则的问题,和JQUERY有什么关系呢?搞不懂,何况俺是prototype阵营的^_^
      

  7.   


    <script[^>]*>([\s\S]*google_ad_width = 728[\s\S]*)?</script>
      

  8.   

    哇塞,你这个太高效了,把我这两段script代码以及它们之间的html代码全部匹配了
      

  9.   

    google_ad_client = "pub-3381531532877741";
    /* 728x90, 创建于 10-12-1 */
    google_ad_slot = "7423315034";
    google_ad_width = 728;
    google_ad_height = 90;这里的排列顺序会不会改变?
      

  10.   

    你测试过了么?        private void TestRegex35()
            {
                string yourStr = @"不好用,我上边的是省略了一部分代码,为了突出重点,现在看来起反作用了。
    我想匹配所有的
    <script type=""text/javascript""><!--
    google_ad_client = ""pub-3381531532877741"";
    /* 728x90, 创建于 10-12-1 */
    google_ad_slot = ""7423315034"";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type=""text/javascript""
    src=""../pagead2.googlesyndication.com/pagead/show_ads.js"" >
    </script>但不匹配
    <script type=""text/javascript""><!--
    google_ad_client = ""pub-3381531532877741"";
    /* 120x600, sidebar_big */
    google_ad_slot = ""9995842720"";
    google_ad_width = 120;
    google_ad_height = 600;
    //-->
    </script>
    <script type=""text/javascript""
    src=""../pagead2.googlesyndication.com/pagead/show_ads.js"" >
    </script>他们之间的区别是google_ad_width,所以刚才我简写了,我现在用
    <script(.*\s*){10}</script>
    能把两个都匹配到,但我只想匹配宽度google_ad_width=728的所有,注意有回车符哈";
                MatchCollection mc = Regex.Matches(yourStr, @"(?is)<script.*?google_ad_width\s*=\s*728.*?</script>.*?</script>");
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Value);
                }
            }
    完整例子,你自己试试把。
      

  11.   

    <script[\w\W]*?google_ad_width = 728[\w\W]*?script>\s*?<script[\w\W]*?script>
      

  12.   

    <script[\w\W]*?google_ad_width = 728[\w\W]*?script>\s*?<script[\w\W]*?script>这个应该就可用了。 不过如果有这样的字符串也可能会整个匹配进去<script type=""text/javascript""><!--
    google_ad_client = ""pub-3381531532877741"";
    /* 728x90, 创建于 10-12-1 */
    google_ad_slot = ""7423315034"";
    google_ad_width = 728;
    google_ad_height = 90;
    //-->
    </script>
    <script type=""text/javascript""
    src=""../pagead2.googlesyndication.com/pagead/show_ads.js"" >
    </script>
    <script type=""text/javascript""><!--
    google_ad_client = ""pub-3381531532877741"";
    /* 120x600, sidebar_big */
    google_ad_slot = ""9995842720"";
    google_ad_width = 120;
    google_ad_height = 600;
    //-->
    </script>
      

  13.   

    to:wuyazhe 这边出来一个我试一个呢,是不是因为我是在dreamweaver中使用的正则来查找,dreamweaver支持的正则不如C#支持的全面呢。
      

  14.   

    早说么
    <script[\s\S]*?google_ad_width\s*=\s*728[\s\S]*?</script>[\s\S]*?</script>
      

  15.   

    to:ares1986 你这个好用,呵呵
      

  16.   

    windwolfer wuyazhe ares1986 你们三个的都好用,呵呵,C#版果然是卧虎藏龙之地,thankyou all,结帖