Inicio > php > Expresiones regulares en PHP, 1era Parte

Expresiones regulares en PHP, 1era Parte

Lunes, 1 de septiembre de 2008 Juan Jorquera Dejar un comentario Ir a comentarios

Artículo Original de ElWebMaster.com

Hola, bienvenidos a otra clase del Taller de PHP de elWebmaster.com. Hoy veremos expresiones regulares, una herramienta muy útil a la hora de trabajar con strings muy largos, ya que nos permite buscar un patrón especifico dentro de una cadena de texto.

Asimismo, veremos que los operadores pueden ayudarnos haciendo que la expresión sea más “flexible” es decir, que se adapte a patrones mucho más complejos. ¡Empecemos!

¿Qué son las expresiones regulares?

Básicamente es como puse en el primer párrafo, una expresión regular es una expresión que nos permite encontrar patrones dentro de textos, pero ¿De qué clase de patrones estamos hablando? Por ejemplo las palabras Webmaster, elWebmaster y elWebmaster.com comparten Webmaster, mediante expresiones regulares podemos encontrar qué palabras coinciden con ese patrón para realizar alguna tarea especifica.

Es muy común utilizar expresiones regulares por ejemplo a la hora de verificar que un email sea verídico, ya que todos los correos electrónicos van a contener un @ y un .com en alguna parte de la cadena.

Ahora bien, no siempre estamos buscando un patrón exacto como fue el primer ejemplo de “Webmaster”, hay veces que tenemos que buscar patrones más difíciles como por ejemplo encontrar en una cadena de texto html donde se encuentra una imagen. En este caso ya no es tan sencillo porque sabemos que todas las imágenes si o si van a tener un pero no sabemos si van a tener algo más como puede ser un class=”” o un style=””, border=””, etc. Es en estos casos cuando empezamos a jugar con los operadores en la expresión para que se adapte a lo que estamos buscando.

Operadores más comunes

| – significa alternación (ó) por ejemplo “nen(e|a)”, eso va a coincidir con nene o con nena.

+ – significa que el caracter al que sigue debe aparecer al menos una vez. Por ejemplo “goo+gle” coincide con la expresión google, gooogle, gooooooogle, etc. ya que la 2da “o” de google tiene que aparecer por lo menos una vez.

? – significa que el caracter al que sigue debe aparecer por lo mucho una vez pero no es necesario que aparezca, un ejemplo de esto es el patrón “p?sicologo”, machea con psicologo y sicologo.

* – significa que el caracter al que sigue puede aparecer cero, una o muchas veces. “gooo*gle” va a coincidir con google, gooogle, goooooogle, etc. Fíjense que a diferencia del patrón con el operador +, acá le pusimos tres “o” en google, ya que no es necesario que este la tercer “o”.

() – los paréntesis se utilizan para agrupar un conjunto de caracteres o definir el ámbito de acción de la expresión, por ejemplo el que puse antes de nene o nena y sino uno un poco más complejo puede ser “(sin)?verguenza”, fíjense que en ese caso pusimos el conjunto “sin” precedido por el ?, lo que significa que esta expresión va a machear con las palabras sinverguenza, verguenza pero no con sinsinverguenza por ejemplo.

^ – significa que nuestro patrón debe ubicarse al comienzo del string que queremos analizar, por ejemplo el patrón “pe” coincide con “perro”, “pepe”, “pelota” pero no coincide con “trompeta” o “campera”.

$ – es similar al ^ pero ahora nuestro patrón debe ubicarse al final del conjunto de caracteres a analizar, por ejemplo “ta”, machea con “carpeta”, “bicicleta”, o “esta” pero no lo hace con “tambien” o “estampida”.

. – el punto representa cualquier otro caracter, por ejemplo si lo que queremos buscar es la url de una imagen podemos poner en nuestro patrón “src=’(.+)’” por ejemplo, en este caso estaríamos buscando una cadena de caracteres que contenga src=’un caracter por lo menos’.

\ – sirve para escapar un caracter, por ejemplo si en nuestro patrón queremos buscar un símbolo de $, si no lo escapamos, al procesar el string va a buscar el patrón al final de la cadena y nos va a fallar entonces necesitamos escaparlo, y eso se hace con la barra invertida, nuestro patrón quedaría algo así “\$(.+)” y eso coincide con $100, $1388. Si buscamos una cifra de dos números podemos armarlo de la siguiente manera “\$(.+){2}”, eso le va a indicar que luego del $ haya dos caracteres, y si queremos que sea una cifra de 0 a 3 por ejemplo, podemos indicarle “\$(.+){0,3}”

Básicamente estas son las reglas básicas a la hora de trabajar con expresiones regulares, ya la clase que viene vamos a ver como utilizarlas con php. Saludos y disfruten la semana.

Comparte !
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • BlinkList
  • email
  • laaik.it
  • Live
  • Meneame
  • MisterWong
  • MyShare
  • Pownce
  • Slashdot
  • StumbleUpon
  • TwitThis
  • Blogosphere News
  • De.lirio.us
  • Technorati

Unique visitors to post: 133

Categories: php Tags:
  1. Viernes, 13 de marzo de 2009 a las 18:15 | #1

    Hola, buen tutorial.

    Hay un pequeñito error en donde dice:
    “goo+gle” coincide con la expresión google

    debería decir:
    “goo+gle” coincide con la expresión gooogle

    Una o mas ;)

  2. Viernes, 13 de marzo de 2009 a las 18:17 | #2

    o Nooooo perdón me equivoqué estás bien tu… lo siento no puedo borrar mi comentario :-D

  1. Sin trackbacks aún.