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!
Patternpat=Pattern.compile("ponha seu padrão aqui");Matchermat=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”.
T
thingol
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.
eduardoac, na primeira tentativa usei o split, mas não queria usar array.