举例:
字符串是
aaacbacad正则表达式是
a.+?b结果是
aaacb如果我想得到结果 acb,可以写的出来吗?

解决方案 »

  1.   

    Regex reg = new Regex(@"a[^a]*?b");
      

  2.   


    是我的例子误导了,主要是希望实现左侧的最小匹配
    比如用 <span>.+?</span> 去匹配 
    <span>aaa<span>bbb</span></span>
    现在得到的是
    <span>aaa<span>bbb</span> 我希望得到的是 <span>bbb</span>,也就是说通配符前边的<span>可以找到两个匹配时取右边的,用正则能做到吗?
      

  3.   

    可以考虑通过MatchCollection mc = reg.Matches(source);得到匹配列表,你去第一个或最后一个,应该就是你要的吧
      

  4.   

    Try:
    <span>((?!</?span>).)+?</span>
      

  5.   

    简化一下:
    <(span)>((?!</?\1>).)+?</\1>