| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 09:58:48
|
Bruno Lacerda
JavaEvangelist
![[Avatar]](/images/avatar/85af7dbb0532ca29713840ae3711fa89.jpg)
Membro desde: 16/07/2007 11:17:52
Mensagens: 371
Localização: Rio de Janeiro
Offline
|
Bom dia!!!
Pessoal, como eu poderia montar uma Regex para validar se a String possui somente digitos numéricos de 0 a 9??? Com tamanho mínimo de X digitos e máximo de Y digitos?
Eu fiz assim mas está bugando!!!
VlW!!!
This message was edited 1 time. Last update was at 17/03/2010 10:12:09
|
A morte do homem começa no instante em que ele desiste de aprender. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:01:35
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Onde está o X e o Y no seu pattern?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:04:42
|
Bruno Lacerda
JavaEvangelist
![[Avatar]](/images/avatar/85af7dbb0532ca29713840ae3711fa89.jpg)
Membro desde: 16/07/2007 11:17:52
Mensagens: 371
Localização: Rio de Janeiro
Offline
|
Não está
Esta condição é para já saber montar a regex caso eu venha precisar limitar o tamanho da String também...
|
A morte do homem começa no instante em que ele desiste de aprender. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:06:07
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
E qual é o bug?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:10:15
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
A sua expressão regular bate apenas com as seguintes strings, que têm apenas um dígito:
0 1 2 3 4 5 6 7 8 9
Não bate com mais nada.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:11:46
|
Bruno Lacerda
JavaEvangelist
![[Avatar]](/images/avatar/85af7dbb0532ca29713840ae3711fa89.jpg)
Membro desde: 16/07/2007 11:17:52
Mensagens: 371
Localização: Rio de Janeiro
Offline
|
Ops, o retorno é false.
Vou corrigir o código do exemplo pra vc ver.
|
A morte do homem começa no instante em que ele desiste de aprender. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:15:56
|
Bruno Lacerda
JavaEvangelist
![[Avatar]](/images/avatar/85af7dbb0532ca29713840ae3711fa89.jpg)
Membro desde: 16/07/2007 11:17:52
Mensagens: 371
Localização: Rio de Janeiro
Offline
|
Em um caso eu quero poder digitar 1 ou 12345 ou 12300456789 mas não necessariamente nesta ordem, como se fosse o ID de alguma produto.
Em outro caso eu quero digitar 1 ou 40 ou 26 como se fosse a quantidade de alguma coisa (neste caso não poderia ser digitado somente 0).
Melhorou?
|
A morte do homem começa no instante em que ele desiste de aprender. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:30:37
|
licantropos_6666
HelloWorld
Membro desde: 16/07/2009 14:54:01
Mensagens: 12
Offline
|
Amigão ... pode ter um geito melhor ...
más sem testar e rapidamente ...
Acho que funciona ... se não funcionar ... avisa.
|
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler)" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/03/2010 10:31:01
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Ah, entendi. De qualquer maneira, leia o manual de expressões regulares do Aurélio Jargas ( http://aurelio.net/er/ ) para você não ficar dependendo de uma resposta de alguém do fórum que está com dificuldade de entender o que você quer.
Se você quer bater sua expressão com números de 3 a 9 algarismos, você usaria:
"\\d{3,9}"
Uma coisa que é difícil fazer com expressões regulares é você indicar com o que você NÃO QUER QUE BATA (no seu caso, o valor 0). É possível fazer isso, mas muito complicado de manter. Em vez disso, separe esses valores via código Java mesmo, que é mais fácil que tentar indicá-los na expressão regular. (converta o número e se der zero, então não é um valor válido para você).
Ou então, use 2 expressões - uma que bate com as coisas que você quer, e outra que bate com as coisas que você não quer. Isso é mais ou menos simples de fazer.
Por exemplo, para bater com alguma coisa cujo valor é zero (como "0", "000", "00000" ou sei lá o quê) você precisa indicar que não quer algo como "0+" (expressão regular que indica 1 ou mais dígitos zero.)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/03/2010 15:38:40
|
LPJava
GUJ Hacker
Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline
|
passei aqui so para agradecer pelo links, realmente legal, bao eh o testador online com regex ehehe, como entanglement tem hora que dar um nó com regex.
|
Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
|
|
|
 |
|
|