Учех регекс с 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" ще се провали в този момент.