Pessoal alguem poderia dar um exemplo comentado sobre como funcionario o quantificador “*”, “+” e “?”… Desde já agradeço !
Quantificador Regex
3 Respostas
".*" -> 0 ou mais ocorrencias de qualquer coisa
".+" -> 1 ou mais ocorrencias de qualquer coisa
".?" -> 0 ou 1 ocorrencia de qualquer coisa
Cara, o ‘’ significa que o termo que você usá-lo pode ser repetido N vezes, mas também não se torna obrigatório.
O ‘+’ é bem parecido com o '’. A diferença é que nesse caso você deve informar o elemento pelo menos uma vez.
O ‘?’ siginifica que o elemento em que você usá-lo não é obrigatório, mas caso apareça, não pode ser mais que uma vez…
Dá uma lida nesse link http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html que ele explica um pouco disso, mas o mais aconselhável a se fazer é procurar algum material de regex na web…
[]'s.
olá… execute este código:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Regex {
public static void main(String args[]) {
String s = "12asdbfdrerA345";
String regex1 = "(\\d)+";
Pattern p = Pattern.compile(regex1);
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println("Posição Inicial -> "+m.start()+
" Posição Final -> "+m.end()+
" Grupo de Dados -> "+m.group());
}
}
}
Depois execute com estes valores:
String regex1 = "(\\d)*";
String regex1 = "(\\d)?";
o que vc pode tirar disso?
para + extrair o resultado, pelo menos 1 caractere precisa satisfazer a condição (\d) dígito
para * extrair o resultado, nenhum caractere satisfazer a condição, porém os que não satisfazerem trarão apenas espaços em branco (\d) dígito
para ? extrair o resultado, nenhum caractere satisfazer a condição, porém os que não satisfazerem trarão apenas espaços em branco, e o que satisfazer não fará loop para buscar a resposta (\d) dígito