在Java中使用\ G边界匹配器

时间:2009-09-15 15:03:00

标签: java regex

我一直在用java学习正则表达式。 我想知道在使用java的matcher时使用\ G是否有意义。 我找不到任何与G一起使用的例子:(

执行此类操作与使用\ G?

的输出不同
String a = "Pruebaprueba";
Matcher matcher = Pattern.compile("(\\w)").matcher(a);
while ( matcher.find() ) {
    // Do something with each letter
}

感谢阅读!

1 个答案:

答案 0 :(得分:7)

直接来自http://java.sun.com/docs/books/tutorial/essential/regex/index.html

  

要求匹配仅在   在上一场比赛结束时,使用\ G:

Enter your regex: dog 
Enter input string to search: dog dog
I found the text "dog" starting at index 0 and ending at index 3.
I found the text "dog" starting at index 4 and ending at index 7.

Enter your regex: \Gdog 
Enter input string to search: dog dog
I found the text "dog" starting at index 0 and ending at index 3.
     

这里第二个例子只找到一个   匹配,因为第二次出现   “狗”的结尾并没有开始   上一场比赛。

所以不,它与你的例子完全不同。我确实认为如果你将正则表达式改为“(。)”你会得到与“\ G”相同的效果。在这个人为的例子中。但是“(\ w)”会继续搜索空格,而“\ G \ w”会在那时失败。