Renyo
Outubro 14, 2009, 1:08pm
#1
Olá caros,
Por exemplo…eu tenho uma expressão [A-Z][a-z][0-9] e vou utilizar no replaceAll
só que eu gostaria de negar essa expressão… digamos um not " ! "!
por exemplo, se o usuário digitar: Zebra 1986 #$%$#&**,
String texto = “Zebra 1986 #$%$#&**”
texto.replaceAll("[A-Z][a-z][0-9]", “_”); // negar a expressão de forma que ele substitua tudo por _ o que NÃO for letras e número…
gostaria que isso resultasse em…Zebra 1986 _____
…
resumindo posso negar uma expressão ?
obrigado
pmlm
Outubro 14, 2009, 1:17pm
#2
Dá uma vista de olhos em http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html
Tem lá uma parte que te interessa:
[quote]\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
[/quote]
Renyo
Outubro 14, 2009, 1:26pm
#3
uma vista de olhos ? rsrs… :lol: :lol: :lol:
obrigado cara, isso me ajudou “[a-zA-Z_0-9]”
para “negar” essa expressão basta só colocar o “^” na frente de modo que fique
“[^a-zA-Z_0-9]”,
vou fazer mais uns testes aqui.
valeu…!
pmlm
Outubro 14, 2009, 2:08pm
#4
É uma expressão utilizada cá em Portugal
E quanto ao problema, tens o \W que é exactamente o que tu queres.
MaikoID
Outubro 14, 2009, 2:23pm
#5
Aqui no Brasil é da uma olhada mesmo…
Isso aqui me ajudou bastante pra entender expressões regulares, http://guia-er.sourceforge.net/ é um livro muito bom explicando os operadores e seus usos…
Abraço.
Detalhe que negar uma lista de caracteres não é o mesmo que negar uma expressão regular inteira (que nem sempre envolve apenas uma lista), cuidado
por exemplo, eu quero tudo o que não seja “batata” seria a expressão (?!batata) que não é suportada por todos os aplicativos