fork download
  1. /* http://es.stackoverflow.com/q/45012/127 */
  2.  
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6.  
  7. class Ideone
  8. {
  9. public static void main (String[] args) throws java.lang.Exception
  10. {
  11.  
  12. final String regex = "(?:- ?)?(?<!\\d[.,]?)(?:\\d{4,}|\\d{1,3}(?:\\.\\d{3})*)(?:,\\d+)?(?![.,]?\\d)";
  13. final Pattern pattern = Pattern.compile(regex);
  14.  
  15. final String texto = "total: $ 29.332.893,32"
  16. + "\ntosdaasdtal: -29.332.893,32"
  17. + "\n10.98,09"
  18. + "\n10.980456"
  19. + "\n00.2da02"
  20. + "\n4,098.09"
  21. + "\n121837182372133.321321313"
  22. + "\ntosdaasdtal: 29.332.893,32"
  23. + "\ntotal: 29.332.893,322313213123132 asasasaasdasd";
  24. final Matcher matcher = pattern.matcher(texto);
  25.  
  26. System.out.println("Texto: \n" + texto + "\n");
  27. while (matcher.find()) {
  28. System.out.println("Número encontrado: " + matcher.group(0));
  29. }
  30. }
  31. }
Success #stdin #stdout 0.05s 711168KB
stdin
Standard input is empty
stdout
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