Título: Problema con expresión regular Publicado por: egyware en 11 Febrero 2010, 23:30 pm Hola a todos
estoy haciendo una expresion regular que no me funciona bien del todo esta es Código Esta es la expresión, (buscando en internet logre hacer esta expresion regular) que extrae el contenido /algo# pero al combinarlo con otras expresiones regulares como BBCode me detecta otras cosas que no debe ser como el cierre de un tag html mi duda es que si me pueden decir como NO incluir el ']', '>' y el espacio ya que me causa varios problemas Saludos gracias por su tiempo Título: Re: Problema con expresión regular Publicado por: ~ Yoya ~ en 11 Febrero 2010, 23:33 pm Ok, no entendi muy bien, escribe lo que quieres sacar en un :
Código: Aqui Título: Re: Problema con expresión regular Publicado por: egyware en 11 Febrero 2010, 23:49 pm Este es el texto por ejemplo
Código: Hola [b]Mundo[/b] /omg# Código: Hola <strong>Mundo</strong> <img src="omg.gif" /> Pero con el actual codigo que tengo me sale algo asi Código: Hola [b]Mundo[<img src="b] /omg.gif"> Gracias Saludos Título: Re: Problema con expresión regular Publicado por: raul338 en 11 Febrero 2010, 23:54 pm Mis problemas favoritos ;-)
Bueno, a tu parecer solo queres capturar valores alfanumericos? (numeros y letras) entonces es \w Si NO queres aceptar ciertos valores, se hace con un ^ al principio del corchete, ej: [^....] Entonces te quedaria: Código: $expresion = '/\/(\w*)?#/'; o sino Código: $expresion = '/\/([^\s\[\]...]*)?#/'; (Ojo, todo esto lo hice al aire, no lo probe, de todas formas deberias probar "en masa" :xD Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. Ahh..entonces lo que te doy no te resuelve el problema: Solo una pregunta, si yo pongo esto Código: Hola [b]Mundo[/b] /omg# Con la expresion regular me deberia salir esto? (o capturar esto): Código: Hola Mundo /omg Título: Re: Problema con expresión regular Publicado por: ~ Yoya ~ en 12 Febrero 2010, 00:16 am Ya se lo que quieres hacer, es como un BBCODE, bueno aqui lo que pediste.
Código
Salida: (http://img535.imageshack.us/img535/7960/gato.png) En este caso, el problema no necesita de expresiones regulares para resolverlo, porque no buscas parametros, si no una palabra en expecifica y remplazarla por un Tag html valido. Título: Re: Problema con expresión regular Publicado por: egyware en 12 Febrero 2010, 00:24 am Yuhu!!!
Lo logre usando esta expresion y le agregue unas cosa mas,gracias a ti Código entonces recapitulando ^ sirve para no considerar y se usa al principio ... para que sirve? Pregunto para saber no mas, ya solucione mi problema Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. Para la otra respuesta que salio, no se me ocurrio pero usar expresiones regulares me facilita la posibilidad de agregar más BBCode y otras cosas como esta Gracias a todos por su respuestas rapidas, lo agradezco Título: Re: Problema con expresión regular Publicado por: raul338 en 12 Febrero 2010, 00:31 am Ahhh! Ahora ya entendi yo tambien (despues de yoyahack y releer el post anterior ...al mio :¬¬ ...:P)
Claro, no necesitas expresiones regulares (aunque se puede hacer, obteniendo los grupos). Solo que cada uno tiene su pro y su contra: Si lo haces mediante str_replace te combiene contar los tags y ver si cierran, porque si te queda un tag abierto te arruina el resto de la pagina (me ha pasado, tambien quise implementar mi propio bbcode). en cambio si lo haces en expresiones regulares (algo asi, porque no se mucho de las funciones que ofrece PHP para expresiones regualres: Código
O algo asi, no lo he probado (lo probare), deberia funcionar Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje. Edit, en el editor de expreiones regulares, indica que no tiene que haber un "." entre lo capturado jeje, no se toma como cualquier caracter, sino como punto. o sea que si hay un "/hola.mundo#" no te lo va a tomar como valido, asi tambien con el "&;" Título: Re: Problema con expresión regular Publicado por: ~ Yoya ~ en 12 Febrero 2010, 00:32 am Bueno egyware, si piensas extender tu lista de BBCODE, puedes mejor crear un POO así tu code queda mas bonito, organizado y optimizado.
|