\G 匹配必须从上一个匹配结束的位置开始 
没看明白 比如 \Gabc  和 ^abc  有啥子区别嘛   怎么区分呢在.net中如何运用呢  大家来教教我吧  200分哦 甩了甩了 请说仔细点 有例子对比下就最好了

解决方案 »

  1.   

    有这么一个
    Q: "0123456789"按每4个分开
    A(1): String[] strs = "0123456789".split("(?<=\\G.{4})");
    A(2):这个 "(?<=\\G.{4})" 要改为 "(?<=\\G.{4})(?!$)",否则会对 "12345678" 这类长度是 4 的倍数的字符串拆分时最后多一个空串出来。
    亮点:\G的使用
      

  2.   

     \G 的 MSDN解释:指定匹配必须出现在上一个匹配结束的地方。与 Match.NextMatch() 一起使用时,此断言确保所有匹配都是连续的。http://msdn.microsoft.com/zh-cn/library/h5181w5w(v=vs.80).aspx之前写过一篇blog:http://blog.csdn.net/q107770540/article/details/6436973
      

  3.   

    MSDN也有这样的解释
    连续匹配:\G
    \G 定位标记指定匹配必须出现在上一个匹配结束的地方。 通过 Regex.Matches 或 Match.NextMatch 方法使用此定位点时,它确保所有匹配项是连续的。using System;
    using System.Text.RegularExpressions;public class Example
    {
       public static void Main()
       {
          string input = "capybara,squirrel,chipmunk,porcupine,gopher," + 
                         "beaver,groundhog,hamster,guinea pig,gerbil," + 
                         "chinchilla,prairie dog,mouse,rat";
          string pattern = @"\G(\w+\s?\w*),?";
          Match match = Regex.Match(input, pattern);
          while (match.Success) 
          {
             Console.WriteLine(match.Groups[1].Value);
             match = match.NextMatch();
          } 
       }
    }
    // The example displays the following output:
    //       capybara
    //       squirrel
    //       chipmunk
    //       porcupine
    //       gopher
    //       beaver
    //       groundhog
    //       hamster
    //       guinea pig
    //       gerbil
    //       chinchilla
    //       prairie dog
    //       mouse
    //       rathttp://msdn.microsoft.com/zh-cn/library/vstudio/h5181w5w.aspx#Contiguous
      

  4.   

    恩 msdn的例子我也看了  就是没看明白   把那个例子里的\G删除也不影响结果  所以... 我再仔细看看
      

  5.   

    我知道了   比如 'a'b'c"d'e'f'g
    \G'[a-z]
    只匹配了'a'b'c  后面的'e'f'g则不匹配    因为中间有个"d  "d匹配不了 后面就不匹配了?   对不
      

  6.   

    java perl .net貌似是这样  php ruby 不知道是不是必须是上一次的匹配结束位置    这流派
      

  7.   


    《精通正则表达式》一书中有专门的说明,第三版在130页
    PHP和Ruby中的\G指向当前匹配的开头位置,而Perl、java.util.regex和.NET匹配上一次匹配的结束位置
      

  8.   

    \G 和\A、\Z之类的元字符,可以算是正则中比较生僻的元字符了,绝大多数情况下我们是用不到的,至少在我回答的所有CSDN正则问题中,还没有哪一个是必须用\G来解决的在一些全文检索,或者是多条件的检索中可能会用到,不过确实还没碰到过不得不用的场景
      

  9.   

    php和ruby 不一定是上一次匹配  只需是当前匹配开头位置  即使中间不连续 后面也可以继续匹配? 
    没环境  回家按个php试试