Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2010, 07:22
Avatar de jackson666
jackson666
 
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Ayuda con expresión regular

Hola gente, qué tal?

Bueno, estoy teniendo un problema con un patrón al que no le encuentro la vuelta . Me explico un poco mejor:

Supongamos que tenemos el siguiente string:

Código PHP:
$string 'fáo = "á está acá";' 
Y queremos reemplazar los acentos del tipo "á" por el caracter html correspondiente, pero solo de los "á" que están encerrados entre comillas dobles. Se entiende? O sea, el resultado esperado es el siguiente:

Código PHP:
$string 'fáo = "á está acá";' 
Estuve tratando y tratando y lo más cerca que estuve fue esto:

Código PHP:
<?php
$cadena 
'fáo = "á está acá";';
echo 
$cadena "\n<br /><br />\n"// Cadena sin reemplazos
$patron '/(\".*?)(á)(.*?\")/is';
$sustitucion '${1}&aacute;${3}';
echo 
preg_replace($patron$sustitucion$cadena); // Cadena reemplazada
?>
Pero el resultado que esto produce es (en código html)

Código HTML:
fáo = "á está acá";
<br /><br />
fáo = "&aacute; está acá";
O sea, no me reemplaza todos los "á" sino que sólo el primero.

Alguien tiene idea de qué es lo que le falta o qué está mal en el patrón? Yo me estoy volviendo loco sinceramente

Muchas gracias!
__________________
HV Studio
Diseño y desarrollo web