Foros del Web » Programando para Internet » PHP »

Como capturar una linea con ereg() ?

Estas en el tema de Como capturar una linea con ereg() ? en el foro de PHP en Foros del Web. Hola, intento capturar UNA linea de una cadena, con la función EREG Entonces hago esto: Código PHP: $original = 'Hola mundo cruel... Las estrellas y las aguas Linea que quiero capturar Las estrellas y las aguas Hola mundo cruel...' ; ...
  #1 (permalink)  
Antiguo 19/07/2007, 15:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Como capturar una linea con ereg() ?

Hola,

intento capturar UNA linea de una cadena, con la función EREG

Entonces hago esto:
Código PHP:
$original='Hola mundo cruel...
Las estrellas y las aguas
Linea que quiero capturar
Las estrellas y las aguas
Hola mundo cruel...'
;
$x="/(Linea que quiero.*)/s";
$x="Linea que quiero.*/s";

if(
ereg($x,$original,$a)){
    
print_r($a);
    } 
Cómo puedo capturar ESA LINEA utilizando ereg?
  #2 (permalink)  
Antiguo 19/07/2007, 18:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Como capturar una linea con ereg() ?

Ejem, ¿y por qué usás un patrón tipo Perl con la función ereg? deberías usar las funciones PCRE, en especial preg_match

Y NO uses el modificador /s, justamente eso es lo que hace que los saltos de línea sean capturados también. Sin ese modificador, el punto no coincide con un salto de línea, y creo que es eso lo que querés...

/Linea que quiero.*/


Probá ese patrón con la función preg_match


Saludos.
  #3 (permalink)  
Antiguo 19/07/2007, 22:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como capturar una linea con ereg() ?

Maestro ALVIN es "imposible" hacerlo con EREG ?

Esa es mi inquietud.

Gracias.
  #4 (permalink)  
Antiguo 20/07/2007, 09:35
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Como capturar una linea con ereg() ?

No, no es imposible, pero el patrón es diferente. Los patrones de las expresiones regulares de Perl son diferentes a los de las funciones ereg*

*Creo* que bastaría con esto:

Línea que quiero[^\n]*


Es decir, "linea que quiero" y luego cualquier caracter que NO sea un salto de línea.


Saludos.
  #5 (permalink)  
Antiguo 25/07/2007, 17:02
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como capturar una linea con ereg() ?

Gracias a tus indicaciones el script ha quedado PERFECTO:
Código PHP:
<?php
$original
='Hola mundo cruel...
Las estrellas y las aguas
Linea que quiero capturar
Las estrellas y las aguas
Hola mundo cruel...'
;
$x="/(Linea que quiero.*)/s";
$x="Linea que quiero[^\n]*";

if(
ereg($x,$original,$a)){
    
print_r($a);
    }
?>
Que bién!.

Código:
...Los patrones de las expresiones regulares de Perl son diferentes a los de las funciones ereg*...
Donde aprendeer los detalles de unos y otros ?

No sabia que hay varios patrones en PHP...

Que lio!.

GRACIAS!.
  #6 (permalink)  
Antiguo 25/07/2007, 18:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Como capturar una linea con ereg() ?

La sintaxis básica es la misma para ambos, solo que las de Perl usan los delimitadores y modificadores

/patron/[modificadores]

mientras que las otras (las POSIX) son simplemente el patrón.

En la forma de construcción del patrón son iguales, si podés leer inglés te recomiendo el excelente libro Mastering Regular Expressions.


Saludos.
  #7 (permalink)  
Antiguo 26/07/2007, 11:01
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Re: Como capturar una linea con ereg() ?

Gracias.

Y en ESTE caso en particular...

Cual es más VELOZ?

EREG o preg_match ?

Yo creo que EREG, verdad ?
  #8 (permalink)  
Antiguo 26/07/2007, 12:00
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Como capturar una linea con ereg() ?

A veces una, a veces la otra, no lo tengo claro.
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 05:10.