Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/10/2012, 17:45
Ergusano
 
Fecha de Ingreso: febrero-2008
Mensajes: 13
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Expresion regular que me haga un milagro

Bueno como decía no soy experto en expresiones regulares, pero aquí te dejo mi aporte.

Funcionar funciona.... :)

<?php
$patrones = array();
$patrones[0] = '| class=[\"\'](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s]|';
$patrones[1] = '| class=[\"\'](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s]|';
$patrones[2] = '| class=[\"\'](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s]|';
$patrones[3] = '| class=[\"\'](.*?)\_(.*?)[\s](.*?)\_(.*?)[\s]|';
$patrones[4] = '| class=[\"\'](.*?)\_(.*?)[\s]|';

$sustituciones = array();
$sustituciones[0] = ' class=\'$1 $2 _$2 $3 $4 _$4 $5 $6 _$6 $7 $8 _$8 $9 $10 _$10 ';
$sustituciones[1] = ' class=\'$1 $2 _$2 $3 $4 _$4 $5 $6 _$6 $7 $8 _$8 ';
$sustituciones[2] = ' class=\'$1 $2 _$2 $3 $4 _$4 $5 $6 _$6 ';
$sustituciones[3] = ' class=\'$1 $2 _$2 $3 $4 _$4 ';
$sustituciones[4] = ' class=\'$1 $2 _$2 ';

echo '<br>Primer ejemplo con 2 clases afectadas:<p>';
$string = "<div class='Aa _Bb _Cc Dd' >Esto es _Ff</div>";
echo htmlentities($string);
echo '<p>';
$salida = preg_replace($patrones, $sustituciones, $string);

echo '<br>Segundo ejemplo con 5 clases afectadas:<p>';
$string = "<div class='Aa _Bb _Cc Dd _Ee Ff _Gg Hh _Ii Jj' >Esto es _Ff</div>";
echo htmlentities($string);
echo '<p>';
$salida = preg_replace($patrones, $sustituciones, $string);
?>