Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2005, 12:19
Proteo
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 18 años, 11 meses
Puntos: 0
Por favor ayuda con otra de acentos, pero esta vez al revés :P

Estimados foristas:

Acudo a ustedes esperando que algún gurú pueda sacarme del apuro. Necesito encontrar una expresión regular (o algún metodo similar) que me permita hacer coincidir dos cadenas de texto sin importar que la cadena a buscar tenga o no acentos y esté o no en mayúsculas. Me explico mejor:

Tengo la siguiente cadena:

Código PHP:
$string1 "Conchale"
Y necesito que coincida con cualquiera de estas variantes:

"Cónchale, Conchale, cónchale, conchale"

Actualmente mi script es así (es una funcion que resalta las palabras encontradas en una cadena de texto):

Código PHP:
function doHighlight($srchTerms,$haystack) {
    
$srchArray=  explode(" ",$srchTerms);
    
$needle join('|',$srchArray);
    
$text preg_replace("/($needle)/i","<b>\\0</b>",$haystack);
    return 
$text;

Esta función recibe una cadena ($srchTerms, por ejemplo "hola mundo"), la separa en palabras y luego la convierte en los elementos a buscar dentro de la segunda cadena ($haystack, por ejemplo "Hola todo el mundo de pie"). Todo funciona perfectamente hasta que se ingresa una cadena como "Perez", ya que necesito que coincida con "Pérez", "Perez","pérez" y "perez" (actualmente sólo conicide con "Perez" y "perez").

Buscando en este y otros foros he encontrado varias expresiones para hacer coincidir palabras con acento con aquellas que no lo tienen eliminando previamente los acentos, pero en este caso lo que necesito es exactamente lo contrario y además no puedo eliminar los acentos de la cadena original. Si hay alguien que sepa como puedo hacerlo, se lo agradecería inmensamente.

Saludos a todos desde Venezuela!