expressões regulares

8 respostas
R

Pessoal, estava tentando apreender expressões regulares, mas estou com um pouco de dificuldade

estava tentando isolar palavras mas parece que não esta funcionando

pagina = "dia,  diafragma, radial, melodia e bom-dia!";
Pattern p = Pattern.compile("\bdia\b",Pattern.CASE_INSENSITIVE);		
Matcher m = p.matcher(pagina);
	
while(m.find()){
	String l = m.group(0).trim();
	System.out.println(l);
}
[/code]

8 Respostas

I

Podes explicar um pouco melhor o que seria este isolamento de palavras? T+

G

Tambén não entendi. Você quer pegar os valores que estão entre as vírgulas ?

R

na verdade gostaria de pegar os valores entre os espaços.

I

Neste caso um StringTokenizer já te resolve o problema:

final String input = "apenas um exemplo simples";
final String sep = " ";
final StringTokenizer tokens = new StringTokenizer(input, sep);
while (tokens.hasMoreTokens()) {
    sysout(tokens.nextToken());
}

T+

R

sim resolveria, mas estou tentando aprender expressões regulares

I

Ah… bom. Então o teu problema não é pegar os valores entre os espaços, e sim como usar ER. Dá uma conferida aqui.

Se testares o objeto matcher vais ver que ele retorna falso:

System.out.println(m.matches());

Tenta esta máscara para pegar o que estiver agrupado depois de “dia”:

Pattern p = Pattern.compile("dia[a-zA-Z]*", Pattern.CASE_INSENSITIVE);

E esta para todo agrupamento com dia:

Pattern p = Pattern.compile("[a-zA-Z]*(dia)[a-zA-Z]*", Pattern.CASE_INSENSITIVE);

Queres criar uma máscara que traga cada ítem separadamente? T+

R

sim, meu problema esta no uso do \b que deveria ser o limite da palavra se estou certo ?

eu acreditava que utilizando “\b[a-z]+\b” deveria retornar todas as palavras não separadas ou estou viajando?

mas obrigado assim mesmo iktuz, suas dicas ja me ajudaram bastante para o que estava fazendo

I

Eu até fiz uns testes com o \b mas não obtive resultados. Eu sei que quando tu tens uma parte invariável, tu podes usá-la como parte da expressão como um agrupamento. Se tu descobrir algo interessante deste \b coloca aí. T+

Criado 15 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 8
Participantes 3