Foros del Web » Programando para Internet » PHP »

Expresión regular

Estas en el tema de Expresión regular en el foro de PHP en Foros del Web. Hola, Necesito un poco de ayuda con una expresión regular. La idea de esta es eliminar los signos de ":" que se encuentren en una ...
  #1 (permalink)  
Antiguo 31/07/2016, 17:15
 
Fecha de Ingreso: noviembre-2014
Mensajes: 17
Antigüedad: 10 años
Puntos: 0
Exclamación Expresión regular

Hola,

Necesito un poco de ayuda con una expresión regular. La idea de esta es eliminar los signos de ":" que se encuentren en una oración y que NO estén concatenados directamente (sin espacios) a palabras por AMBOS lados.

Ejemplo:

Código PHP:
$cadena ':Hola: este signo de : se elimina, pero este:no porque esta :concatenado por ambos: :lados:';
$patron '/El patron que busco/';
$sustitucion '';
echo 
preg_replace($patron$sustitucion$cadena); 
Debe Retornar:

Código PHP:
Hola este signo de  se eliminapero este:no porque esta concatenado por ambos lados 
** Nótese que se han eliminado tos los signos de ':' excepto el que se concatenado a palabras por ambos lados, en este caso: "este:no".
  #2 (permalink)  
Antiguo 31/07/2016, 19:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Expresión regular

No necesitas una expresión regular para eso, el patrón es muy simple: espacio, dos puntos, espacio.

Con str_replace() debe bastar.
Código PHP:
Ver original
  1. echo str_replace(' : ', '', $texto);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/08/2016, 09:46
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 11 meses
Puntos: 20
Respuesta: Expresión regular

Hola amigo,
tendrías que considerar 3 casos,
1.- Cuando hay espacios en blanco de ambos lados de ":" Ej.- " : "
2.- Cuando hay algún espacio delante de ":" Ej.- ": "
3.- Cuando hay algún espacio antes de ":" Ej.- " :"
Considerando esos 3 casos puedes aplicar str_replace como lo comenta pateketrueke
Ya q el único inconveniente que veo con lo que el propone, es q estos puntos ":lados:" no se eliminarían..
Saludos!

Etiquetas: regular
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 12:10.