Foros del Web » Programando para Internet » PHP »

preg_replace

Estas en el tema de preg_replace en el foro de PHP en Foros del Web. Hola que tal, les hago una consulta ya que no pude lograr que funcione miren al parsear una cadena tengo que reemplazar los signos + ...
  #1 (permalink)  
Antiguo 16/09/2011, 21:16
 
Fecha de Ingreso: agosto-2011
Ubicación: Argentina
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 1
preg_replace

Hola que tal, les hago una consulta ya que no pude lograr que funcione
miren al parsear una cadena tengo que reemplazar los signos + por un espacio en blanco, con la condicion de que lo que sigue signo mas sea algo distinto de un signo mas
ejemplos para que se entienda
hola+amigos+de+forosdelweb -> hola amigos de forosdelweb
busco+un+libro+de+c+++barato (este es mi problema)asi tendria que quedar
-> busco un libro de c++ barato
la idea es hacerlo con preg_replace si es que se puede
algo como preg_replace('/\+[^\+]/',' ', $cadena);
el problema de lo anterior es que me reemplazaria no solo el signo mas, sino tambien el caracter que le siga al signo mas por espacio
es decir como puedo hacer para que en la expresion regular me reemplaze esto
'/\+[^\+]/' por ' '[^\+], es decir reemplazar esa busqueda por un espacio seguido del caracter que encontro despues del signo mas
desde ya muchas gracias espero que se entienda, la idea mia es hacerlo con expresiones regulares sin bucles u otra cosa
  #2 (permalink)  
Antiguo 16/09/2011, 22:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: preg_replace

A mi se me ocurre algo así

Código PHP:
Ver original
  1. \+(?=[^\+])

Resultado:

hola amigos de forosdelweb
busco un libro de c++ barato

Prueba y nos cuentas. Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 16/09/2011, 22:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: preg_replace

Podría usar (?=) para mirar adelante:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 16/09/2011, 22:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 158
Antigüedad: 12 años, 7 meses
Puntos: 15
Respuesta: preg_replace

esto quedaria asi, XD

Código:
<?php
$cadena="hola+amigos+de+forosdelweb ";
echo preg_replace("([+]+)"," ", $cadena);
?>
TE ACONSEJO QUE USES LA IDEA DE andresdzphp
LA ADAPTE Y SI FUNCIONO @_@

Última edición por dleal100; 16/09/2011 a las 22:16
  #5 (permalink)  
Antiguo 16/09/2011, 22:26
 
Fecha de Ingreso: agosto-2011
Ubicación: Argentina
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: preg_replace

excelente respuesta andres y gracias por el enlace pateketrueke,
es justo lo que necesitaba y no sabia como hacerlo, asi que hoy aprendi algo nuevo
gracias como siempre

pd: gracias por tu aporte y recomendacion dleal100

Etiquetas: Ninguno
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 11:49.