Expressao Regular - Somente números

Olá, estou fazendo a seguinte expressão regular:

str[i].matches("^[0-9]");

ou

Pattern.matches("^[0-9]", str[i]);

str[] tenho diversos valores:
“fabio”
“nascimento”
“1986”

Quando rodo meu for com qualquer uma das condições a cima em meu if sempre da false…
Gostaria que ele entra-se no meu if quando fosse “1986”.

[quote=fnascimento]Olá, estou fazendo a seguinte expressão regular:

str[i].matches("^[0-9]");

ou

Pattern.matches("^[0-9]", str[i]);

str[] tenho diversos valores:
“fabio”
“nascimento”
“1986”

Quando rodo meu for com qualquer uma das condições a cima em meu if sempre da false…
Gostaria que ele entra-se no meu if quando fosse “1986”.

[/quote]

tenta usar um argumento assim => “[0-9]+”

String[] str = {"fabio","nascimento","1986"};
         
         for(int i=0;i<str.length;i++ ) {
             if(str[i].matches("[0-9]+")) {
                 System.out.println("Match: " + str[i]);
             }
         }

acho que te ajuda.

Funcionou muito obrigado só nao entendi muito bem o porque…

Eu estou usando esse site para validar minhas RE:
http://tools.lymas.com.br/regexp_br.php

Nele funcionou…

Eu vi que no site da sun:
http://72.5.124.55/docs/books/tutorial/essential/regex/quant.html

O “+” serve para verificar se tem ocorrencia? No meu caso numerica no inicio da string…

[quote=fnascimento]Funcionou muito obrigado só nao entendi muito bem o porque…

Eu estou usando esse site para validar minhas RE:
http://tools.lymas.com.br/regexp_br.php

Nele funcionou…

Eu vi que no site da sun:
http://72.5.124.55/docs/books/tutorial/essential/regex/quant.html

O “+” serve para verificar se tem ocorrencia? No meu caso numerica no inicio da string…[/quote]

existe essa forma tb:

[0-9]{1,}

eu costumo usar o site http://www.javaregex.com/testbig.html para testar

se a qtde de dígitos for fixo pode usar o contra-barra + d (meu teclado ta sem contra-barra) :lol:

ele representa somente digitos…

Sei que o tópico é antigo, mas pode ajudar visitantes futuros.

Como no nome do tópico dizia “Expressao Regular - Somente números.”, imaginei que a expressão deveria apenas aceitar números. Então vale a atenção para um pequeno detalhe:

A expressão [0-9]+ procura por qualquer ocorrência de 1 ou mais algarismos e caso encontre valida a condição:

function validarCampoNumerico(numero){
	var er = new RegExp("[0-9]+");
	return (er.test(numero));
}

A função acima retornaria True para valores como: @#Legal!!!11, a1b2c3d4e5, Númer0 e falso para valores como: @#Legal!!, abcde, Número.
Ou seja, basta ter um caractere numerico em qualquer posição da string do parâmetro para que a condição seja atendita e validada.

Já um método que apenas valide caracteres numericos:

function validarCampoNumerico(numero){
	var er = new RegExp(/^[0-9]{1,}$/);
	return (er.test(numero));
}

Utilizando recursos citados pelo Jvabuntu e o bobmoe.

Esta expressão aceitaria apenas cadeida de caracteres numericos excluindo caracteres especiais, letras e espaços.

Espero os próximos visitantes que verão este tópico.

4 curtidas