Foros del Web » Programando para Internet » PHP »

como eliminar espacios demas con expresiones regulares

Estas en el tema de como eliminar espacios demas con expresiones regulares en el foro de PHP en Foros del Web. hola, tengo este codigo Código PHP: $texto  =  preg_replace ( '!\s+!' ,  ' ' ,  $texto );  para eliminar espacios demas, lo que necesito es que ...
  #1 (permalink)  
Antiguo 03/03/2015, 11:59
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Sonrisa como eliminar espacios demas con expresiones regulares

hola, tengo este codigo
Código PHP:
$texto preg_replace('!\s+!'' '$texto); 
para eliminar espacios demas, lo que necesito es que los elimine solo en los que esten dentro en las etiquetas <b>

o sea

Código PHP:
$var="mi       mama <b>me      mima</b> mucho"
sea igual a
Código PHP:
$var="mi       mama <b>me mima</b> mucho"

que lo de afuera no lo toque, seria de gran utilidad para un script que estoy haciendo, se los agradezco de ante mano
__________________
Manual de Javascript
  #2 (permalink)  
Antiguo 03/03/2015, 13:11
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 1 mes
Puntos: 15
Respuesta: como eliminar espacios demas con expresiones regulares

$var="mi mama <b>me mima</b> mucho";

se me ocurre que.. primero tendrias que aislar lo que esta dentro de los tags ( <b> </b> )

muchos caracteres .*
seguido de un tag <.*>
seguido de otros muchos caracteres .* <--- me mima
seguido de un tag que cierra <\/.*>
y finaliza con otros muchos caracteres .*

.*<.*>.*<\/.*>.*

como quieres mantener toda la cadena.... creas grupos para poder luego recuperar los pedazos
(.*<.*>) <--- lo que esta antes de
(.*) <<--- "me mima"
(<\/.*>.*) <-- lo que esta despues de


(.*<.*>)(.*)(<\/.*>.*)

Código PHP:
Ver original
  1. $var="mi       mama <b>me      mima</b> mucho";  
  2.  
  3. preg_match_all('/(.*<.*>)(.*)(<\/.*>.*)/', $var, $coincidencias);
  4. //print_r($coincidencias);
  5. echo $coincidencias[1][0].preg_replace('/\s\s+/', ' ', $coincidencias[2][0]).$coincidencias[3][0];

Etiquetas: espacios, expresiones, regulares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:31.