Foros del Web » Programando para Internet » PHP »

Expresión regular y nuevas líneas

Estas en el tema de Expresión regular y nuevas líneas en el foro de PHP en Foros del Web. Hola compañeros, resulta que despues de otras horas de estar jodiendome no logro hacer una expresión regular para recorrer saltos de linea. El codigo de ...
  #1 (permalink)  
Antiguo 07/03/2012, 02:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 14 años, 2 meses
Puntos: 3
Expresión regular y nuevas líneas

Hola compañeros, resulta que despues de otras horas de estar jodiendome no logro hacer una expresión regular para recorrer saltos de linea.

El codigo de ejemplo es:
Código:
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
Intento mediante preg_match_all y utilizando /<div id=\"contain\">(.*)<\/div>/ sacar el contenido pero no lo logro, se que es con \s o algo porque el . no los "procesa" pero no se como emplearlo.

Como dije se que puedo usar \n o \s pero recurro a ustedes.

Gracias

Última edición por kh0d3x; 07/03/2012 a las 03:04
  #2 (permalink)  
Antiguo 07/03/2012, 03:53
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Expresión regular y nuevas líneas

Código PHP:
Ver original
  1. preg_match_all("/<div id=\"contain\">([\w\W]+)<\/div>/", $text, $matches);
  2. print_r($matches);

http://stackoverflow.com/a/4026233/454827
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 07/03/2012, 06:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Expresión regular y nuevas líneas

Gracias, eso era:

\w cualquier letra o dígito y el guión bajo
\W cualquier cosa que no sea letra o dígito y el guión bajo

Saludos.
  #4 (permalink)  
Antiguo 08/03/2012, 18:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 14 años, 2 meses
Puntos: 3
Expresiones regulares, pattern incorrecto

Me atreví a crear otro post porque sinceramente no logro hacer nada aún (http://www.forosdelweb.com/f18/expre...lineas-980149/).

Mi duda parte de éste código
Código:
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
¿Qué intento hacer?, pues procesar lo que esta dentro de los divs, tengo esta expresión gracias a ZiTAL:

Código PHP:
Ver original
  1. $text = '<div id="contain">
  2.  <span>test</span>
  3.  <span>test</span>
  4.  <span>test</span>
  5. </div>
  6. <div id="contain">
  7.  <span>test</span>
  8.  <span>test</span>
  9.  <span>test</span>
  10. </div>';
  11. preg_match_all("/<div id=\"contain\">([\w\W]+)<\/div>/", $text, $matches);
  12. print_r($matches);

Y de respuesta obtengo:
Código:
Array
(
    [0] => Array
        (
            [0] => <div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
       )
     [1] => Array
        (
            [0] => 
  <span>test</span>
  <span>test</span>
  <span>test</span>
</div>
<div id="contain">
  <span>test</span>
  <span>test</span>
  <span>test</span>
        )
)
Lo que quiero es obtener lo que esta entre <div id="contain"> y </div> para manipular, obviamente, lo que esta dentro.

Creo que el error consiste en que empieza desde <div id="contain"> y termina en el último </div> por lo que tendría que darle un "límite" a buscar y es lo que ahora no se hacer.

Gracias de antemano
  #5 (permalink)  
Antiguo 08/03/2012, 18:50
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Expresiones regulares, pattern incorrecto

Hola que tal.

Has leído las normas del foro

Ya que no esta permitido duplicar temas, para que entiendas las expresiones regulares checa esto

Expresiones PCRE

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #6 (permalink)  
Antiguo 08/03/2012, 18:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Expresiones regulares, pattern incorrecto

Sí, las he leído pero a mi punto de vista no lo estoy duplicando; de ser así, pido entonces que se elimine el tema y disculpas.
- - - -
He leído varios temas respecto a las expresiones regulares, y créeme, si pregunto acá es porque ya pasé más de 6 horas intentado solucionar.

El problema no es saber que hace cada expresión sino como emplearla, o sea, sé que es con \s (según yo) pero no entiendo como emplearla junto con el .* en mi caso ya que lo que necesito es que me capture texto + saltos de línea.

Pero gracias.
  #7 (permalink)  
Antiguo 08/03/2012, 22:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 48
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Expresión regular y nuevas líneas

Perdon el doble post pero tengo ya este código que es como decía (con s):

Código PHP:
Ver original
  1. $text = '<div id="contain">
  2. *<span>test</span>
  3. *<span>test</span>
  4. *<span>test</span>
  5. </div>
  6. <div id="contain">
  7. *<span>test</span>
  8. *<span>test</span>
  9. *<span>test</span>
  10. </div>';
  11. preg_match_all("/<div id=\"contain\">(.*)<\/div>/s", $text, $matches);
  12. print_r($matches);

Y obtengo lo mismo, ¿alguna solución?

Etiquetas: expresion, pattern, preg_match_all, regultar, saltos
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 13:06.