Dúvida com Expressão Regular

Pessoal, estou com dúvida sobre expressão regular.
Tem um campo, arquivo de texto, e em um determinado campo númerica de 6 números as vezes pode vir com espaço em branco:

" 456"

Minha expressão regular não confere: “[0-9]{6}”, tentei também “[0-9]{0,6}” mas nada. Estou tentando de outras formas, mas ainda nada. Sou bem iniciante, qualquer ajuda ou luz aí ajuda.

Obrigado

Cara,

não consegui achar um padrão exato para o tipo de string que você quer validar mas de qq forma…

String regex = “(\d|\s){1,6}?”;

Eu to validando se é um digito ou um espaco em branco. No mínimo 1 e no máximo 6.

Então são validos:

String a = " ";
String a = “1”;
String a = “1 2”;
String a = "12 ";

Ve se é isso mesmo que você precisa.

Flw

[quote=dcbasso]Pessoal, estou com dúvida sobre expressão regular.
Tem um campo, arquivo de texto, e em um determinado campo númerica de 6 números as vezes pode vir com espaço em branco:

" 456"

Minha expressão regular não confere: “[0-9]{6}”, tentei também “[0-9]{0,6}” mas nada. Estou tentando de outras formas, mas ainda nada. Sou bem iniciante, qualquer ajuda ou luz aí ajuda.

Obrigado[/quote]

Basicamente:

  • Pode ter espaços à esquerda

  • Não pode ter espaços no meio, senão dá pau com aquelas rotinas que fazem parse de números

  • Pode ter espaços à direita

  • Você quer realmente checar se tem exatamente 6 posições?

Pode fazer isso fora da expressão regular, senão vou ter de escrever uma expressão regular muito complicada.

Se testar isso fora da expressão regular, a expressão regular fica simples:
“\s*[0-9]+\s*”

“\s*” quer dizer “zero ou mais espaços”
“[0-9]+” quer dizer “um ou mais dígitos”