2009-09-15 5 views
4

J'ai appris la regex avec Java. Je voulais savoir s'il était judicieux d'utiliser \ G en utilisant le navigateur de Java. Je ne pouvais pas trouver un exemple de \ G utilisé avec java :(Utilisation de G boundary Matcher en Java

Faire quelque chose comme cela ne serait pas le même résultat que l'utilisation \ G?

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

Merci pour la lecture!

+0

[Voici] (http://stackoverflow.com/a/33411197/4856258) un exemple de plus comment '\ G' pourrait être utile avec le fractionnement. –

Répondre

6

directement à partir http://java.sun.com/docs/books/tutorial/essential/regex/index.html

exiger le match se produire qu'à la fin du match précédent, utilisez \ 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. 

Voici le second exemple trouve qu'un seul match parce que la deuxième occurrence de « chien » ne commence pas à la fin de le match précédent.

Donc non, cela ne ferait pas exactement la même chose que votre exemple. Je pense que si vous changiez la regex en "(.)", Vous obtiendriez le même effet que "\ G". dans cet exemple artificiel. Mais "(\ w)" continuerait à chercher un espace alors que "\ G \ w" échouerait à ce moment-là.

+1

Merci pour votre réponse! J'ai également trouvé ce lien intéressant pour une meilleure compréhension de \ G: http://www.rhinocerus.net/forum/lang-perl-misc/589432-faq-6-20-what-good-g-regular-expression .html – Macarse

+0

haha, serait un joli t-shirt \ Gdog –

+0

@Macarse Lien semble cassé malheureusement – geisterfurz007

Questions connexes