Dúvida em regex

5 respostas
schistossoma

Buenas!

Tenho uma string como no exemplo:

#CCSS#FFES

A cada # começa uma palavra (não há limite de caracteres). Não consegui ainda achar uma expressão regular que satisfaça esse padrão. O máximo que consigo é encontrar a primeira palavra. Se alguém puder me ajudar, esta é a primeira vez que estou usando regex. Mas enquanto isso continuarei tentando. Valeu!

5 Respostas

T
Pattern pat = Pattern.compile ("ponha seu padrão aqui");
Matcher mat = pat.matcher ("#CCSS#FFES");
while (mat.find()) {
    System.out.println (mat.group());
}
schistossoma

thingol:
Pattern pat = Pattern.compile ("ponha seu padrão aqui"); Matcher mat = pat.matcher ("#CCSS#FFES"); while (mat.find()) { System.out.println (mat.group()); }

A parte do código tá tranquila. O que tá me pegando é a expressão regular mesmo. Não consegui até agora achar uma que resulte em “CCSS” e “FFES”. :slight_smile:

T

Hum… você quer bater com quê?

  • Você quer bater apenas com as literais “CCSS” e “FFES”. Nesse caso, você usaria:

“#(CCSS|FFES)”

  • Você quer bater com qualquer sequência de letras maiúsculas com 4 caracteres.

“#[A-Z]{4}”

  • Você quer bater com qualquer sequência de letras e dígitos com pelo menos 1 caracter.

“#[A-Z0-9a-z]+”

eduardoac

O split do java não resolveria seu problema?
Parece que esta tentando pegar qualquer texto com o delimitador “#”, se for isso, pode usar String.split().

Abraços.

schistossoma

Valeu thingol! A última expressão que sugeriste era exatamente o que eu precisava. Praticamente comecei a usar expressões regulares hoje e ainda não peguei a manha. :slight_smile:

eduardoac, na primeira tentativa usei o split, mas não queria usar array. :smiley:

Criado 15 de janeiro de 2009
Ultima resposta 15 de jan. de 2009
Respostas 5
Participantes 3