Foros del Web » Programando para Internet » PHP »

Empezando con expresiones regulares

Estas en el tema de Empezando con expresiones regulares en el foro de PHP en Foros del Web. hola que tal amigos, he estado tratando de crear una programilla php y necesito aprender a usar las expresiones regulares, he leido como 10 tutoriales ...
  #1 (permalink)  
Antiguo 28/02/2010, 09:56
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Empezando con expresiones regulares



hola que tal amigos, he estado tratando de crear una programilla php y necesito aprender a usar las expresiones regulares, he leido como 10 tutoriales y es increible pero no puedo, hay cosas que no me explico por eso pido su ayuda.

por ejemplo hago esto, por un decir:

Código PHP:
preg_match ("^[A-Z]l""El carro está chido"$coincidencias);
$coincidencias=$coincidencias[2];
echo 
"la coincidencia es: ".$coincidencias
se supone, según los tutos (o eso creo que dicen igual y yo soy el que esta mal) que eso me debería dar "La coincidencia es: El"

y me dice

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\xampp\htdocs\prueba.php on line 15

no entiendo eso del delimitador, ¿por que sale?

y luego me sale

Unknown modifier 'l' in etc. estoy apunto de un colapso.

Gracias a quien me pueda ayudar, seguiré practicando a ver que consigo.
  #2 (permalink)  
Antiguo 28/02/2010, 10:01
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Empezando con expresiones regulares

Creo que va entre barras:
Código PHP:
Ver original
  1. preg_match ("/^[A-Z]l/", "El carro está chido", $coincidencias);
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 28/02/2010, 10:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Empezando con expresiones regulares

lee lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/

toda expresión compatible con PCRE debe utilizar delimitadores...
Cita:
|regex|
/regex/
¬regex¬
@regex@
los separadores permiten usar modificadores en nuestra expresión, que van después del separador de cierre...

Cita:
/href="(.+?)"/is
y eso es todo... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 28/02/2010, 10:04
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Empezando con expresiones regulares

muchas gracias señores.

pero una duda

segun yo "estaba usando POSIX¡¡¡"

dios mio

leeré lo que me ha dicho pateketrueke.

gracias

PD: ya le puse las barras pero me aparece
La coincidencias es:
sin "El"

Ok ok creo que el problema estaba ya después de lo que me dijeron en esto

Código PHP:
Ver original
  1. $coincidencias=$coincidencias[2];

ese dos debia ser [0] algo que no se por que pero bueno.

ya voy dando un pasito

Última edición por memoadian; 28/02/2010 a las 10:11
  #5 (permalink)  
Antiguo 28/02/2010, 10:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Empezando con expresiones regulares

lo que sucede es que estas usando el índice 2, y dicha captura no existe... no esta hecha

por defecto, el índice cero de las coincidencias contiene toda la expresión...

dichos índices se crean de usar paréntesis de captura... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/02/2010, 10:21
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Empezando con expresiones regulares

Cita:
Iniciado por pateketrueke Ver Mensaje
lo que sucede es que estas usando el índice 2, y dicha captura no existe... no esta hecha

por defecto, el índice cero de las coincidencias contiene toda la expresión...

dichos índices se crean de usar paréntesis de captura... (:
Ah vaya, o sea que ese número ¿índica el número de la captura? o sea si es la primera? o la segunda? o tercera?

si por ejemplo tengo una url

http://misitio.dom/archivo.php?id=1235456

y quiero sacar mm no se "id=123456"

¿debo representar todo mi string en la expresion regular o solo lo que quiero sacar?


PD: creo que con lo de los delimitadores entendidos, ya estoy jugando con las expresiones regulares, y ahora si parece que toda la lógica aplica. gracias
  #7 (permalink)  
Antiguo 28/02/2010, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Empezando con expresiones regulares

claro... mira
Cita:
id=\d+
eso capturaría toda la expresión como va.... pero si quieres un dato mas especifico
Cita:
id=(\d+)
así también capturas el entero, muy simple no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 28/02/2010, 12:17
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Empezando con expresiones regulares

tiene razon señor gracias ya lo he entendido bastante bien y he conseguido mi meta.

Etiquetas: empezando, expresiones, 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 11:42.