文本:   -----A-------B---------B---------------B-------------B------B---------B
   注"---"长度是不确定的 我想取"A"到与他之后的第一个"B"之间的文本,用表达式"A(?<content>.*?)B" 可以取到,
 其结果是:     正则:"A(?<content>.*?)B",  结果:"A-------B" 可我还有一个需求 就是当"A"与第一个"B"之间的文本的长度在10至40之内的才匹配出来,如是我写了以下正则:    正则:"A.{10,40}B",          结果:"A-------B---------B---------------B" 这就不是我想要的结果了,因为他会从最后所定义的长度内的最后一个开始匹配而不是第一个,

解决方案 »

  1.   

    正则: "A.{10,40}B?"
    如果只是要截取A到第一个B之间的 可以后边加个?
    代表正则的懒惰模式  不加?  代表贪婪模式
    即一直匹配到字符串最后一个符合的位置
      

  2.   

    楼上正解! 呵呵  多谢了!那再问一个:
    如 :....................<a href="www.665.cn">遛遛网</a><a href="www.360buy.com">京东</a><a href="www.suning.cn">苏宁</a><a href="/more.aspx">更多</a>.....................我写正则:<a\shref=[\"'](?<link>.*?)[\"']>更多</a>结果为:<a href="www.665.cn">遛遛网</a><a href="www.360buy.com">京东</a><a href="www.suning.cn">苏宁</a><a href="/more.aspx">更多</a>很显然这不是我想要的结果,我只想要取"更多"的超链接? 这样的正则该怎么写,
      

  3.   

    Regex regex = new Regex("<a.*?href=\"(?<href>.*?)\".*?title=\"(?<title>.*?)\".*?>", RegexOptions.Compiled);
    可以取到 href 和title 
      

  4.   

    麻烦用心点看我的提问  你这个确实可以取到href和title,但那是在特定的情况下如 :title 必须写在a标签内而且title必须写在href后面才行!
      

  5.   


            string str = ":....................<a href=\"www.665.cn\">遛遛网</a><a href=\"www.360buy.com\">京东</a><a href=\"www.suning.cn\">苏宁</a><a href=\"/more.aspx\">更多</a>.....................";
            Regex reg = new Regex(@"<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>更多</a>");
            foreach (Match m in reg.Matches(str))
            {
                Response.Write(m.Groups[2].Value);
            }
    /*
    /more.aspx
    */
      

  6.   

    搞错了,哈哈
    周公这儿有篇图文并茂的,应该对你有帮助
    http://blog.csdn.net/zhoufoxcn/archive/2010/03/09/5358644.aspx