fork download
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.  
  4. class TesteRegex {
  5.  
  6. private static final Pattern AGENCIA_CONTA = Pattern.compile(
  7. "(?:Agência: [0-9]{4} Conta: [0-9]{5}-[0-9X])|" +
  8. "(?:Conta: [0-9]{5}-[0-9X] Agência: [0-9]{4})");
  9.  
  10. public static void main(String[] args) {
  11. String texto = ""
  12. + "Banana abacaxi pêra Agência: 5720 Conta: 43821-X abacate "
  13. + "melancia Agência: 3481 Conta: 53895-0. verde azul "
  14. + "amarelo Agência: 6666 Conta: 66667-NÃO É ESSA "
  15. + "Agência: 9123 Conta: 44578-2 "
  16. + "laranja Conta: 43210-7 Agência: 6589 verde "
  17. + "rosa lilás Conta: 77777-7 Não vai dar Agência: 4444";
  18.  
  19. Matcher m = AGENCIA_CONTA.matcher(texto);
  20. while (m.find()) {
  21. String achou = texto.substring(m.start(), m.end());
  22. System.out.println("Achou nas posições " + m.start() + "-" + m.end() + ": "
  23. + achou);
  24. String agencia, conta;
  25. if (achou.startsWith("Agência:")) {
  26. agencia = achou.substring(9, 13);
  27. conta = achou.substring(21, 28);
  28. } else {
  29. agencia = achou.substring(24, 28);
  30. conta = achou.substring(7, 14);
  31. }
  32. System.out.println("Os valores encontrados são: " + agencia + " e " + conta + ".");
  33. }
  34. }
  35. }
Success #stdin #stdout 0.1s 27964KB
stdin
Standard input is empty
stdout
Achou nas posições 20-48: Agência: 5720 Conta: 43821-X
Os valores encontrados são: 5720 e 43821-X.
Achou nas posições 66-94: Agência: 3481 Conta: 53895-0
Os valores encontrados são: 3481 e 53895-0.
Achou nas posições 153-181: Agência: 9123 Conta: 44578-2
Os valores encontrados são: 9123 e 44578-2.
Achou nas posições 190-218: Conta: 43210-7 Agência: 6589
Os valores encontrados são: 6589 e 43210-7.