Negar Expressão Regular

5 respostas
Renyo

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

:wink: :stuck_out_tongue:

5 Respostas

pmlm

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:

\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]

Renyo

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

É uma expressão utilizada cá em Portugal :slight_smile:

E quanto ao problema, tens o \W que é exactamente o que tu queres.

MaikoID

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.

peczenyj

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 :wink:

por exemplo, eu quero tudo o que não seja “batata” seria a expressão (?!batata) que não é suportada por todos os aplicativos

Criado 14 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 5
Participantes 4