Autor Tema: Expresiones Regulares  (Leído 353 veces)

Desconectado xtremer

  • PHPerit@
  • *
  • Mensajes: 5
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Expresiones Regulares
« en: 13 de Marzo de 2012, 15:43:22 pm »
Estoy hace un par de semanas intentando entender bien el tema de las expresiones regulares.

Uno de los casos que quiero terminar de entender por logica y no por mecanica y memoria es:
#\{(.*?)\}#

Esa expresion la estoy usando para un sistema de plantillas propia, y que enconcontre en un tutorial xD,
# lo uso como separador es igual que usar /
\ lo uso para avisar que quiero voy a ingresar un signo, y que busque ese signo

. lo uso como comodin, para saltear lo que haya dentro de las llaves {} , por lo q pueden ingresar cualquier cosa, letras numeros signos

* es 0 o mas veces que se repita los caracteres
? es 0 o 1 vez que se repita los caracteres
*? es 0 o 1 o mas veces que se repita los caracteres

.*?
Que todos los caracteres se puedan repetir 0,1, o mas veces

Esta bien lo que digo hasta ahi?


Tambien queria saber del +?
porque realiza lo mismo que *?
aunque el + era 1 o mas veces


Espero que me puedan corregir porfavor,

Gracias,
Saludos
« Última modificación: 13 de Marzo de 2012, 15:54:24 pm por xtremer »

Comunidad PHPeros

Expresiones Regulares
« en: 13 de Marzo de 2012, 15:43:22 pm »

Desconectado Slipknot

  • PHPer@
  • **
  • Mensajes: 60
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
Re:Expresiones Regulares
« Respuesta #1 en: 23 de Marzo de 2012, 19:47:29 pm »
# lo uso como separador es igual que usar /

# o / o | (el que yo uso) se llaman delimitadores. Es indiferente cual utilices pero la idea es usar el que menos estara dentro del patron para que no tengas que estarlo escapando.

preg_match("/Voy a buscar un archivo en \/home\/slipknot/",...

preg_match("|Voy a buscar un archivo en /home/slipknot|",...


\ lo uso para avisar que quiero voy a ingresar un signo, y que busque ese signo

La barra invertida es para "escapar" caracteres que tienen un significado especial, como $, ., ^, {, }, etc.

preg_match("/Tengo \$10 dolares/",...

. lo uso como comodin, para saltear lo que haya dentro de las llaves {} , por lo q pueden ingresar cualquier cosa, letras numeros signos

El punto es justamente un comodin, coincide con cualquier caracter menos con saltos de linea.

* es 0 o mas veces que se repita los caracteres
? es 0 o 1 vez que se repita los caracteres
*? es 0 o 1 o mas veces que se repita los caracteres

.*?
Que todos los caracteres se puedan repetir 0,1, o mas veces

* es 0 o mas
+ es 1 o mas
? (en este caso) es 0 o 1

Te sugiero aprender los (demas) meta-caracteres y modificadores -de patron- pues son muy utiles :P
"He omitido intencionalmente los acentos en la mayoría de mis mensajes"