Foros del Web » Programando para Internet » PHP »

Un poco de ayuda con expresiones regulares

Estas en el tema de Un poco de ayuda con expresiones regulares en el foro de PHP en Foros del Web. Estoy creándome una pequeña aplicación para eliminar los comentarios de un código php, para eliminar los comentarios del tipo "//" estoy usando $patron='/\/\/.*/'; $res=preg_replace($patron,"",$res); Y ...
  #1 (permalink)  
Antiguo 22/06/2010, 03:24
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 11 años, 1 mes
Puntos: 1
Un poco de ayuda con expresiones regulares

Estoy creándome una pequeña aplicación para eliminar los comentarios de un código php, para eliminar los comentarios del tipo "//" estoy usando
$patron='/\/\/.*/';
$res=preg_replace($patron,"",$res);

Y me funciona perfectamente, me elimina las barras y todo el texto posterior hasta el salto de linea, lo que pasa es que en el código también se pueden encontrar links, y claro en el "http://" me lo considera como un comentario y me lo elimina.

Mi pregunta es si hay alguna manera de decirle que me quite todos los "//" que no tengan un "http:" delante o si hay algún truquillo como modificar los links antes de quitar comentarios y luego volverlos a dejar bién.

Espero ansioso vuestra respuesta y muchas gracias.

EDIT.

Me he enontrado también un problemilla con los comentarios del estilo /* comentario */ ya que por ejemplo, en un texto:

palabra
/* perro */
texto
/* gato */

Quiero que devuelva:
palabra
texto

pero me devuelve solo palabra, me gustaría saber si hay alguna manera de indicarle que se quede con el primer final y no con el último

Última edición por Neldor; 22/06/2010 a las 04:59
  #2 (permalink)  
Antiguo 25/06/2010, 02:42
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Un poco de ayuda con expresiones regulares

Gracias a nadie por responder, por suerte ya he encontrado soluciones a mis problemas, para el primero lo que he hecho es buscar http:// y cambiarlo por otra cosa que estoy seguro que no se encontrará en el texto (en mi caso http:[/][/]), y después de eliminar los comentarios // volver a cambiar a http://.

A mi segunda pregunta he encontrado el modificador U de las expresiones regulares, que precisamente hace lo que deseaba.
  #3 (permalink)  
Antiguo 25/06/2010, 03:17
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Un poco de ayuda con expresiones regulares

solo con poner un ^ al principio del patron te tendría que funcionar. el ^ es para que reconozca // si es el principio de la palabra, si tiene algun caracter antes no hará matching.

Entonces no se muy bien la sintaxis pero tendria que ser algo asi...

'/^\/\/.*/'
  #4 (permalink)  
Antiguo 25/06/2010, 03:22
Avatar de Neldor  
Fecha de Ingreso: enero-2010
Mensajes: 52
Antigüedad: 11 años, 1 mes
Puntos: 1
Respuesta: Un poco de ayuda con expresiones regulares

Pues lo de poner el circunflejo ya lo probé pero no me funcionaba, me quedo con mi solución
  #5 (permalink)  
Antiguo 25/06/2010, 07:23
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 11 años, 4 meses
Puntos: 334
Respuesta: Un poco de ayuda con expresiones regulares

bueno el modificador U invierte la codicia de los cuantificadores
te dejo una pagina con algo de información al respecto

http://www.ignside.net/man/php/regex.6.php

saludos!
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: expresiones, links, 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 21:10.