<h1 class="title"><!-- InstanceBeginEditable name="日期与标题" -->4月22日 星期三  <span class="STYLE73"><br />
    学习指导 (8:00——11:00)<br />
    专题教育 (11:00——12:00)<br />
少年文化 (15:00——16:00)<br />
教师发展(17:00——周四8:00)<br />
  </span><!-- InstanceEndEditable --></h1>我向提取“4月22日教师发展(17:00——周四8:00”的内容  请问如何写正则啊?<h1 class="title"><!-- InstanceBeginEditable name="日期与标题" -->4月25日 星期六 <br />
  (周五20:00——周日8:00)<!-- InstanceEndEditable --></h1>

解决方案 »

  1.   

    try...MatchCollection mc = Regex.Matches(yourStr, @"(?<=<h1\s*class=""title"">\s*<!--\s*InstanceBeginEditable\s*name=""日期与标题""\s*-->)(?:(?!</h1>)[\s\S])*(?=</h1>)", RegexOptions.IgnoreCase);
    foreach (Match m in mc)
    {
        richTextBox2.Text += Regex.Replace(m.Value, "<[^>]*>", "") +"\n";
    }
      

  2.   

    lxcnn  有<span class="STYLE73">这个标签的记录怎么不能匹配啊?谢谢了! 
      

  3.   

    含有《span  class》都过滤了!!!
      

  4.   


    胡乱改的,不知道成不成
    MatchCollection mc = Regex.Matches(yourStr, @"(?<=<h1\s*class=""\w*"">\s*<!--\s*InstanceBeginEditable\s*name=""日期与标题""\s*-->)(?:(?!</h1>)[\s\S])*(?=</h1>)", RegexOptions.IgnoreCase);
    foreach (Match m in mc)
    {
        richTextBox2.Text += Regex.Replace(m.Value, "<[^>]*>", "") +"\n";
    }
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using System.Text.RegularExpressions;namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                Regex r = new Regex("<!--\\s*InstanceBeginEditable name=\"日期与标题\"\\s*-->(.+)<!--\\s*InstanceEndEditable\\s*-->");            MatchCollection mc = r.Matches("<!--InstanceBeginEditable name=\"日期与标题\" -->4月25日 星期六 <br /> (周五20:00——周日8:00)<!-- InstanceEndEditable -->");
                foreach (Match m in mc)
                {
                    Console.Write("名字:" + m.Groups[1].Value);
                    Console.WriteLine();
                }
            }
        }
    }输出:
    名字:4月25日 星期六 <br /> (周五20:00——周日8:00)
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using System.Text.RegularExpressions;namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                Regex r = new Regex("<!--\\s*InstanceBeginEditable name=\"日期与标题\"\\s*-->(.+)<!--\\s*InstanceEndEditable\\s*-->");            MatchCollection mc = r.Matches("<h1 class=\"title\"> <!-- InstanceBeginEditable name=\"日期与标题\" -->4月22日 星期三  <span class=\"STYLE73\"> <br />  学习指导 (8:00——11:00) <br />   专题教育 (11:00——12:00) <br /> 少年文化 (15:00——16:00) <br /> 教师发展(17:00——周四8:00) <br />   </span> <!-- InstanceEndEditable --> </h1> ");
                foreach (Match m in mc)
                {
                    Console.Write("名字:" + m.Groups[1].Value);
                    Console.WriteLine();
                }
            }
        }
    }
    输出:
    名字:4月22日 星期三  <span class="STYLE73"> <br />  学习指导 (8:00——11:00) <br />   专题教育 (11:00——12:00) <br /> 少年文化 (15:00——16:00) <br /> 教师发展(17:00——周四8:00) <br />   </span>
      

  7.   

    Console.Write("名字:" + m.Groups[1].Value); 
    你自己可以把"名字:"+去掉,我做测试的时候用的