Replace - Case insensitive

Alguém da lista conhece ou tem algum método para realizar replace com case insensitive, ou seja, ignorar se a palavra é maiúscula ou minúscula.

Grato ! [/b]

Use expressão regular para fazer isso!

  String mod = "CaSA e Asa".replaceAll("(A|a)(S|s)(A|a)","---");

isso faz com que qualquer ocorrencia de ‘asa’ (case-insensitive) seja substituida por ‘—’

onde eu posso aprender a programar (tutorial, manual, etc) esta “expressão regular”

Expressões regulares são realmente uma ferramenta MUITO poderosa e as expressões podem ter complexidade enorme, pra ti entender de expressões regulares tens que pegar algum livro de Linguagens Formais e Compiladores na parte de Analisadores Léxicos que vc vai achar muita coisa sobre expressões regulares.

A O’Reilly tem um livro específico sobre ER - Mastering Regular Expressions

Na API Java tem algumas dicas dos simbolos que o java usa: Class Pattern

Esse cara aki foi meu professor de Linguagens Formais, excelente professor, vale a pena dar uma olhada no material do site.

Pesquise também sobre a Linguagem Perl - a linguagem abusa dos recursos de ER, dá pra fazer ‘mágica’… :wink:

É realmente muito interessante.

Vou dar uma pesquisada melhor, pois o replace case insensitive eu já consegui fazer.

Obrigado.

um exemplo básico que fiz em scriplet mesmo segue abaixo para quem precisar:

[code]import="java.util.regex.*"

<%
Pattern p = Pattern.compile("brasÍlia*",11111);
Matcher m = p.matcher("Visitou Brasília o primeiro ministro… brasília tabém.");

String strMEMateria = m.replaceAll("<font color=red><b>Brasília</b></font>");
%>

<%=strMEMateria%>
[/code]

[quote=“viecili”]Use expressão regular para fazer isso!

  String mod = &quot;CaSA e Asa&quot;.replaceAll&#40;&quot;&#40;A|a&#41;&#40;S|s&#41;&#40;A|a&#41;&quot;,&quot;---&quot;&#41;;

isso faz com que qualquer ocorrencia de ‘asa’ (case-insensitive) seja substituida por ‘—’[/quote]
Olá, não precisa criar a expressão com as letras maiusculas e minusculas. Basta fazer assim:

Pattern p = Pattern.compile&#40;&quot;asa&quot;, Pattern.CASE_INSENSITIVE&#41;; Matcher m = p.matcher&#40;&quot;minha casa fica longe da sua CaSa&quot;&#41;; String nova = m.replaceAll&#40;&quot;---&quot;&#41;;
A primeira vista pode parecer mais complicado, mas é bem mais sensato quando vc tem uma expressão regular mais complicada.

valeuz…

O material desse guia eh muito bom http://aurelio.net/er/