Quantificador Regex

3 respostas
Raff

Pessoal alguem poderia dar um exemplo comentado sobre como funcionario o quantificador “*”, “+” e “?”… Desde já agradeço !

3 Respostas

Guilherme_Gomes

".*" -> 0 ou mais ocorrencias de qualquer coisa
".+" -> 1 ou mais ocorrencias de qualquer coisa
".?" -> 0 ou 1 ocorrencia de qualquer coisa

kaique

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.

CarlosEduardoDantas

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

Criado 8 de outubro de 2007
Ultima resposta 8 de out. de 2007
Respostas 3
Participantes 4