elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:56  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Usando expresiones regulares cuando hay saltos de línea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usando expresiones regulares cuando hay saltos de línea  (Leído 1,976 veces)
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Usando expresiones regulares cuando hay saltos de línea
« en: 27 Junio 2011, 11:16 »

Wenas, estoy tratando de usar el preg_match_all y las expresiones regulares para poder buscar textos dentro de documentos html.

Si quisiera por ejemplo el interior del body de un html, lo que en principio se me ocurriría de hacer sería un:

preg_match_all('/(<body>)(.*)(<\/body>)/',$data,$resultado);

El problema es que cuando hay saltos de línea de por medio, esto no funciona.

A alguien se le ocurre algo que pudiera hacer? quizás borrar los saltos de línea? Como haría esto?

Un saludo y gracias!


En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
Darkgold9

Desconectado Desconectado

Mensajes: 63



Ver Perfil
Re: Usando expresiones regulares cuando hay saltos de línea
« Respuesta #1 en: 27 Junio 2011, 12:07 »

Wenas, he estudiado ese tema este año en la uni aunq no exactamente con lo que tu intentas, pero el error es que el operador comodin (el "." que pones ai) acepta cualquier caracter excepto el salto de linea, creo que una posible solucion seria que pusieses en un conjunto que aceptas el comodin y el salto de linea, algo asi he estudiado yo: [.\n]*, o tmb aunq esta nose si te valdria al 100%, puedes poner q aceptas todo menos entrecomillados o algun caracter que no kieras, ej: [^\"].


En línea
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: Usando expresiones regulares cuando hay saltos de línea
« Respuesta #2 en: 27 Junio 2011, 13:01 »

Exacto.

Al final lo solucioné casi como me dijiste, de la siguiente forma

((.*)\n*)

Ya que sino, solo podia tomar un caracter + salto de línea

Un saludo!
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Duda con expresiones regulares
« Respuesta #3 en: 27 Junio 2011, 14:04 »

He vuelto a tener una duda existencial con las expresiones regulares, a ver si alguno sabe como solucionarlo. Cuando buscamos algo con expresiones regulares, no es sucesivo y va de izquierda a derecha, me explico:

Imaginemos que tengo la cadena <b>Hola <i>Mundo</i></b>

Si hiciera un preg_match_all, poniendo de patron algo como:

\<(.*)\>

Me cogería toda la cadena, ya que el sistema entiende:

<b>Hola <i>Mundo</i></b>

Sin embargo, mi pregunta es, si esto se puede cambiar, para que buscase y diese de resultado:

<b>

No se si me explico.. Esta duda existencial me viene a raiz de que quiero obtener la ruta de todas las imágenes de una página web. El contenido de esta página web lo tengo en una variable, entonces hago:

Código:
preg_match_all("/\<img(.*)src=(\"|')(.*(\.(jpg|png|gif)))(\"|')/",$valor,$asd);

En principio parece que funciona bien, pero si se encuentra con esto por ejemplo, no funciona bien:

Código:
<img src="http://imagen.png" width="320" /></a></div><a href="http://imagen.png">

Ya que me devuelve: http://imagen.png" width="320" /></a></div><a href="http://imagen.png, en lugar de http://imagen.png

Alguna solución? (tengo que hacerlo con expresiones regulares, no me valdria hacer explodes ni nada por el estilo)

Un saludo!
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Usando expresiones regulares cuando hay saltos de línea
« Respuesta #4 en: 27 Junio 2011, 16:02 »

Mira esta que acabo de crear, es un poco avanzada!.

Código:
<img.+src=(?:\"|\')(?i)([^"']+)(?<=png|jpg|gif)(?-i)

Prueba la y cuenta.
En línea

raul338


Conectado Conectado

Mensajes: 2.371


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Usando expresiones regulares cuando hay saltos de línea
« Respuesta #5 en: 27 Junio 2011, 17:22 »

Regular Expressions - Repetition with Star and Plus mira la parte de "Watch Out for The Greediness!"

:)
En línea

‭lipman


Desconectado Desconectado

Mensajes: 2.872



Ver Perfil WWW
Re: Usando expresiones regulares cuando hay saltos de línea
« Respuesta #6 en: 30 Junio 2011, 11:45 »

Muy bueno, no lo conocía!
En línea

Twitter: jmlipman

http://delanover.com

Busco redactores para mi blog.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares
Programación Visual Basic
chrominum 1 489 Último mensaje 30 Enero 2008, 23:09
por LeandroA
¿Expresiones Regulares?
Programación General
Choclito 2 1,242 Último mensaje 4 Marzo 2010, 21:59
por BEATMASTER
Expresiones Regulares + Php wtf!
PHP
Shell Root 4 1,281 Último mensaje 29 Marzo 2010, 01:24
por Castg!
expresiones Regulares
.NET
Choclito 3 2,152 Último mensaje 1 Mayo 2010, 05:09
por raul338
Expresiones Regulares
Programación General
Psyke1 9 1,201 Último mensaje 1 Junio 2010, 02:12
por SeC
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines