/ / Използване на G граничен мач в Java - java, regex

Използване на граничната матрица G в Java - java, regex

Учех регекс с java. Исках да знам дали има смисъл да използвате G, докато използвате java. Не можех да намеря пример с G, използван с java :(

Правейки нещо такова, няма да има същия резултат като G?

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

Благодаря за четенето!

Отговори:

7 за отговор № 1

Директно от 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)" ще продължи да търси след празно пространство, докато "Gw" ще се провали в този момент.