Srs,
Estou precisando fazer uma expressão regular que case o padrão abaixo:
14754310000030742-8 00/00/0000 15/03/2010 138,88 1,80 0,00 0,00 LQR 137,08 * 372
Explicando,
Campo 1: Número do documento, pode ter de 1 a 30 digitos seguido de um hifem e um digito verificador
Campo 2: Vencimento, (vem sempre 00/00/0000 mas pode vir a data também)
Campo 3: Data Pagamento (vem sempre no formato DD/MM/AAAA)
Campo 4: Valor do documento, vem o valor alinhado a direita (com 9 digitos 99999,99)
Campo 5: Tarifa, vem o valor alinhado a direita (com 7 digitos 9999,99)
Campo 6: Acrescimo, vem o valor alinhado a direita com 8 digitos
Campo 6: Desconto, vem o valor alinhado a direita com 9 digitos
Campo 7: LQR (sempre vem isso escrito ou outra sigla, que pra mim é indiferente)
Campo 8: Valor recebido vem alinhado a direita com 9 digitos
Campo 9: * (sempre vem um *)
Campo 10: Local de recebimento, sempre vem um numero de ate 5 digitos
Inicialmente fiz a seguinte expressao:
String regExp = "^[0-9]{1,30}-[0-9]"
Porem nao funcionou, ai fiz o seguinte codigo para testar:
Pattern regExp = Pattern.compile("^1*");
String linha = "14754310000030395-3 00/00/0000 15/03/2010 155,00 1,80 0,00 0,00 LQR 153,20 * 3329";
Matcher pesquisa = regExp.matcher(linha);
if (pesquisa.matches()) {
System.out.println("OK");
}else{
System.out.println("FALSO");
}
Alguem saberia me indicar onde esta o erro? Neste exemplo que passei, imprime FALSO sempre, e pelo que eu entendo a expressao: ^1* seria que começe com 1 seguido de qualquer coisa
Mesmo assim nao esta funcionando!
Alguem poderia me dar um help (deixei meu livro do aurelio la em casa! hehehe)
Obrigado.
