正则表达式中\ G锚点的用途

时间:2010-08-06 21:10:48

标签: regex

我根本不明白\G锚点的作用。

如果我在/\G\d\d/上执行1122aa33,则会与1122匹配。但是,当我在/\d\d\G/上尝试1122aa33时,它什么都不匹配。

有人可以启发我吗?

3 个答案:

答案 0 :(得分:2)

\Ganchor which matches the previous match position

在第一遍中,\G相当于\A,它是字符串锚点的开头。由于\d\d\A永远不会匹配任何内容(因为如何在字符串开头之前有两位数字?),\d\d\G也永远不会匹配任何内容。

答案 1 :(得分:1)

Reference link

它基本上匹配“上一个匹配”的结尾,它在正则表达式的第一次运行时被认为是字符串的开头。

换句话说,如果您在字符串/\G\d\d/上运行1122aa33两次,则第二次运行会在22上返回匹配。

答案 2 :(得分:1)

根据this

  

主播\ G匹配上一场比赛结束的位置。 在第一次匹配尝试期间,\ G以\ A的方式匹配字符串的开头。

现在,要真正回答你的问题:在你的第二个例子中,没有产生结果的那个,\ G不能匹配字符串的开头,因为你首先寻找两个数字,并且没有那个初始匹配,\ G也不会与其他任何东西相匹配。