Expressão regular identificando caracteres especiais

4 respostas
hiroc

dae pessoal,
eu sei que eu preciso estudar melhor expressões regulares, mas o problema é que tenho algo aqui urgente e preciso dele funcionando.

valor.replaceAll(" Aki eu quero colocar a expressão regular que acha o caractere =  " , " %...");

valor.replaceAll(" Aki eu quero colocar a expressão regular que acha o caractere +  " , " %...");

valor.replaceAll(" Aki eu quero colocar a expressão regular que acha o caractere \   " , " %...");
e pode pegar um caractere ou mais de um.....

valew

4 Respostas

T

Que caracter é tão especial que você não pode imprimi-lo para nós?

Por exemplo, o caracter de euro ( E , Unicode U+20AC, conforme você pode confirmar no Charmap (utilitário do Windows) pode ser substituído por:

String s = "150 \u20AC";
s = s.replace ("\u20AC", "Euro"); // resultado = "150 Euro".
hiroc

Bem, resolvi meu problema com isso:

private String convertePadraoURL(String valor){

		if(valor.contains("+"))
			valor = valor.replaceAll("\\+", "%2B");
		
		if(valor.contains("/"))
			valor = valor.replaceAll("/", "%2F");
		
		if(valor.contains("="))
			valor = valor.replaceAll("=", "%3D");
		
		return valor;
	}

Na verdade, tava dando erro pq meu primeiro método que tava substituindo valor era o valor.replaceAll("+","%2B") e não subtituia (aliás, dava exceção pq antes eu não tava testando se tinha o ‘+’ como to fazendo agora com o valor.contains("+")), pois o caractere ‘+’ precisa ter uma barra antes ‘+’.

valew

T

No seu caso em particular, você pode usar replace em vez de replaceAll (a menos que você esteja usando Java 1.4, onde não existe replace de string com outra string), porque é mais rápido e dá menos problemas - ele não precisa de uma expressão regular.

hiroc

Entendi cara…

o lance é que podem haver mais de 1 caractere especial repetido…dae eu optei pelo replaceAll msmo…

valew pelas dicas de performance.

Criado 18 de dezembro de 2008
Ultima resposta 18 de dez. de 2008
Respostas 4
Participantes 2