/* ¿Como se obtienen los grupos de esta exprecion regular?
https://es.stackoverflow.com/q/71535/127 */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
{
private static void filtraNumeros
(String texto
) {
String regex
= "(?<![\\d.])\\d{1,12}(?:\\.\\d{1,3})?+\\b";
Pattern patron = Pattern.compile(regex);
Matcher matcher = patron.matcher(texto);
int contador = 0;
//bucle para cada coincidencia.
while (matcher.find()) {
//Imprimir todo el texto con el que se coincidió
System.
out.
println( ++contador
+ "° número: " + matcher.
group() ); }
}
{
// Prueba
String prueba
="abc 123 def 12.345 -- demasiados decimales: 1.1234 987654321.321 0"; filtraNumeros(prueba);
}
}
Lyogwr9Db21vIHNlIG9idGllbmVuIGxvcyBncnVwb3MgZGUgZXN0YSBleHByZWNpb24gcmVndWxhcj8KICAgaHR0cHM6Ly9lcy5zdGFja292ZXJmbG93LmNvbS9xLzcxNTM1LzEyNyAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKCmNsYXNzIElkZW9uZQp7Cglwcml2YXRlIHN0YXRpYyB2b2lkIGZpbHRyYU51bWVyb3MoU3RyaW5nIHRleHRvKSB7CiAgICAKICAgICAgICBTdHJpbmcgcmVnZXggICAgPSAiKD88IVtcXGQuXSlcXGR7MSwxMn0oPzpcXC5cXGR7MSwzfSk/K1xcYiI7CiAgICAKICAgICAgICBQYXR0ZXJuIHBhdHJvbiAgPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgpOwogICAgICAgIE1hdGNoZXIgbWF0Y2hlciA9IHBhdHJvbi5tYXRjaGVyKHRleHRvKTsKICAgICAgICBpbnQgY29udGFkb3IgPSAwOwogICAgCiAgICAgICAgLy9idWNsZSBwYXJhIGNhZGEgY29pbmNpZGVuY2lhLgogICAgICAgIHdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewogICAgICAgICAgICAvL0ltcHJpbWlyIHRvZG8gZWwgdGV4dG8gY29uIGVsIHF1ZSBzZSBjb2luY2lkacOzCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggKytjb250YWRvciArICLCsCBuw7ptZXJvOiAiICsgbWF0Y2hlci5ncm91cCgpICk7CiAgICAgICAgfQogICAgfQogICAgCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyBQcnVlYmEKCQlTdHJpbmcgcHJ1ZWJhID0iYWJjIDEyMyBkZWYgMTIuMzQ1IC0tIGRlbWFzaWFkb3MgZGVjaW1hbGVzOiAxLjEyMzQgOTg3NjU0MzIxLjMyMSAwIjsKICAgICAgICBmaWx0cmFOdW1lcm9zKHBydWViYSk7Cgl9Cn0=