publicclassRegexTest{publicstaticvoidmain(String[]args){// TODO Auto-generated method stubPatternpattern=Pattern.compile("\\d*");Matcherm=pattern.matcher("ab34ef");booleanb=false;while(b=m.find())System.out.print(m.start()+m.group());}}
Quando deveria produzir 234.
Agradeço as explicações.
o Operador * retorna uma ou mais ocorrências....e como vc utilizou o método "group()" ele vai agrupar pra os registros encontrados....
eu fiz de uma forma um pouco diferente pra vc entender melhor...
importjava.util.regex.*;publicclassTeste{publicstaticvoidmain(String[]args){// TODO Auto-generated method stub Patternpattern=Pattern.compile("\\d*");Matcherm=pattern.matcher("ab34ef");booleanb=false;while(b=m.find())System.out.println(m.start()+" "+m.group());}}
Produz a saída:
0
1
2 34
4
5
6
Para produzir a saída 234 vc deve usar:
importjava.util.regex.*;publicclassTeste{publicstaticvoidmain(String[]args){// TODO Auto-generated method stub Patternpattern=Pattern.compile("\\d+");Matcherm=pattern.matcher("ab34ef");booleanb=false;while(b=m.find())System.out.println(m.start()+" "+m.group());}}
d* = zero ou mais ocorrências
d+ = zero ou mais digitos seguidos
Espero ter ajudado...
davidtiagoconceicao
Está sendo utilizado " * ", que permite zero ocorrências, portanto o Matcher encontra 0 ocorrências na posição 0 e imprime zero, e assim sucessivamente.
Tente executar este código:
d* = zero ou mais ocorrências
d+ = zero ou mais digitos seguidos
Espero ter ajudado…
Está errado, o certo é:
d* = zero ou mais digitos
d+ = UM ou mais digitos
dfsilva86
Está errado, o certo é:
d* = zero ou mais digitos
d+ = UM ou mais digitos
Valeu pela correção Frango 8)
Nykolas_Lima
dfsilva86:
Está errado, o certo é:
d* = zero ou mais digitos
d+ = UM ou mais digitos
Valeu pela correção Frango 8)
Que isso
eu confudia isso também hahaha
D
Daniel.F
Ok. entendi.
Alguém pode me explicar quando é necessário montar expressões com colchetes e paranteses??
Obrigado.
Nykolas_Lima
Daniel.F:
Ok. entendi.
Alguém pode me explicar quando é necessário montar expressões com colchetes e paranteses??
Obrigado.
O parenteses é o grupo, ele procura por um trecho igual ao que esta dentro do parentes.
Ex: (bom dia)+ <–isso quer dizer que voce quer encontrar o grupo “bom dia”, seguido de um ou mais “bom dia”
Já o colchete é um tipo de lista, ela quer dizer que voce quer algo que esteja dentro dela.
Ex: A[bcd] <–isso quer dizer que voce está procurando por um A seguido de um “b” ou um “c” ou um “d”
Não sei se fui bastante claro na explicação, mas aqui segue um link sobre regex muito bom qualquer coisa olha lá que explica melhor.