/* http://es.stackoverflow.com/q/45012/127 */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
{
{
final String regex
= "(?:- ?)?(?<!\\d[.,]?)(?:\\d{4,}|\\d{1,3}(?:\\.\\d{3})*)(?:,\\d+)?(?![.,]?\\d)"; final Pattern pattern = Pattern.compile(regex);
final String texto
= "total: $ 29.332.893,32" + "\ntosdaasdtal: -29.332.893,32"
+ "\n10.98,09"
+ "\n10.980456"
+ "\n00.2da02"
+ "\n4,098.09"
+ "\n121837182372133.321321313"
+ "\ntosdaasdtal: 29.332.893,32"
+ "\ntotal: 29.332.893,322313213123132 asasasaasdasd";
final Matcher matcher = pattern.matcher(texto);
System.
out.
println("Texto: \n" + texto
+ "\n"); while (matcher.find()) {
System.
out.
println("Número encontrado: " + matcher.
group(0)); }
}
}
LyogaHR0cDovL2VzLnN0YWNrb3ZlcmZsb3cuY29tL3EvNDUwMTIvMTI3ICovCgppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKCgpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJCgkJZmluYWwgU3RyaW5nIHJlZ2V4ID0gIig/Oi0gPyk/KD88IVxcZFsuLF0/KSg/OlxcZHs0LH18XFxkezEsM30oPzpcXC5cXGR7M30pKikoPzosXFxkKyk/KD8hWy4sXT9cXGQpIjsKCQlmaW5hbCBQYXR0ZXJuIHBhdHRlcm4gPSBQYXR0ZXJuLmNvbXBpbGUocmVnZXgpOwoJCQoJCWZpbmFsIFN0cmluZyB0ZXh0byA9ICJ0b3RhbDogJCAgICAgICAgIDI5LjMzMi44OTMsMzIiCgkJCQkJCSAgICsgIlxudG9zZGFhc2R0YWw6IC0yOS4zMzIuODkzLDMyIgoJCQkJCQkgICArICJcbjEwLjk4LDA5IgoJCQkJCQkgICArICJcbjEwLjk4MDQ1NiIKCQkJCQkJICAgKyAiXG4wMC4yZGEwMiIKCQkJCQkJICAgKyAiXG40LDA5OC4wOSIKCQkJCQkJICAgKyAiXG4xMjE4MzcxODIzNzIxMzMuMzIxMzIxMzEzIgoJCQkJCQkgICArICJcbnRvc2RhYXNkdGFsOiAyOS4zMzIuODkzLDMyIgoJCQkJCQkgICArICJcbnRvdGFsOiAyOS4zMzIuODkzLDMyMjMxMzIxMzEyMzEzMiBhc2FzYXNhYXNkYXNkIjsKCQlmaW5hbCBNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIodGV4dG8pOwoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbigiVGV4dG86IFxuIiArIHRleHRvICsgIlxuIik7CgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CgkJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTsO6bWVybyBlbmNvbnRyYWRvOiAiICsgbWF0Y2hlci5ncm91cCgwKSk7CgkJfQoJfQp9
Texto:
total: $ 29.332.893,32
tosdaasdtal: -29.332.893,32
10.98,09
10.980456
00.2da02
4,098.09
121837182372133.321321313
tosdaasdtal: 29.332.893,32
total: 29.332.893,322313213123132 asasasaasdasd
Número encontrado: 29.332.893,32
Número encontrado: -29.332.893,32
Número encontrado: 02
Número encontrado: 29.332.893,32
Número encontrado: 29.332.893,322313213123132