Desarrollo de Aplicaciones para Webmasters
Inicio | Actualidad | Foro de ayuda | Buscar | Contacto    
Inicio
Webmasters 2.0
Temario
Créditos
Imagen
Intro Flash
Foro
ScriptMaster 1.0
Actualizar
Imagen
Foro
Cibertienda 1.0.2
Ejemplo
Imagen
Foro
Actualidad
Inicio > Artículos
Artículos
Categoría: Programación / PHP - Fecha: 08-07-2002

Expresiones regulares: Cadenas

Sintaxis básica

Las cadenas de caracteres se pueden especificar utilizando comillas o apóstrofes como delimitadores.

Si la cadena está encerrada entre comillas ("), las variables que estén dentro de la cadena serán expandidas (sujetas a ciertas limitaciones de interpretación). Como en C y en Perl, el carácter de barra invertida ("\") se puede usar para especificar caracteres especiales.

A continuación vamos a explicar para que sirven algunos símbolos y de que manera se pueden utilizar para realizar búsquedas dentro de una cadena.

Los símbolos '^' y '$' indican el comienzo y el final de una cadena:

  • "^La": Busca cualquier cadena que comience con "La".
  • "la casa$": Busca cualquier cadena que termine con "la casa".
  • "^abc$": Una cadena que comience y termine con "abc".
  • "casa": Una cadena que contenga el texto "casa".

También están los símbolos '*', '+', y '?', que determinan la cantidad de caracteres o secuencia de caracteres que existen dentro de una cadena. Estos caracteres sugieren que existe cero o más caracteres, uno o más caracteres y cero o por lo menos un caracter. Ejemplo:

  • "ab*": Busca una cadena que contenga una "a" seguida por cero o más "b" ("a", "ab", "abbb", etc.).
  • "ab+": Igual que la anterior, pero debe existir por lo menos una "b" ("ab", "abbb", etc.).
  • "ab?": Puede existir o no una "b".
  • "a?b+$": Puede existir una "a" seguida por una o más "b" y que termine en "b".

También se puede determinar el rango de la búsqueda utilizando números dentro de llaves: 

  • "ab{2}": Busca una cadena que contenga una "a" seguida por, exactamente, dos "b".
  • "ab{2,}": Existen por lo menos dos "b" ("abb", "abbbb", etc.).
  • "ab{3,5}": Desde tres a cinco "b" ("abbb", "abbbb", or "abbbbb").

Nota: Es muy importante especificar el primer número dentro del rango (ej. "{0,2}", y no "{,2}").  También, como habrán notado, lo símbolos '*', '+', y '?' tienen el mismo efecto que si se utilizan los rangos   "{0,}", "{1,}", y "{0,1}", respectivamente.

Ahora, para cuantificar una secuencia de caracteres, hay que colocarlos dentro de paréntesis:

  • "a(bc)*": Busca una cadena que contenga una "a" seguida por cero o más copias de la secuencia "bc".
  • "a(bc){1,5}": Entre una y cinco copias de la secuencia "bc".

También existe el símbolo '|', que tiene el mismo efecto que el operador OR:

  • "si|no": Busca una cadena que contenga la palabra "si" o "no" dentro de ella.
  • "(b|cd)ef": Una cadena que contenga una de las dos, "bef" o "cdef".

El punto '.' hace referencia a un solo caracter:

  • "a.[0-9]": Busca una cadena que contenga una "a" seguida por un caracter y un número.
  • "^.{3}$": Un cadena que contenga exactamente tres caracteres.

Las expresiones dentro de corchetes especifican los caracteres permitidos en una determinada posición de la cadena:

  • "[ab]": Una cadena que contenga una "a" o "b" (igual que "a|b").
  • "[a-d]": Una cadena que contenga caracteres desde la "a" hasta la "d" (igual que "a|b|c|d" o "[abcd]").
  • "^[a-zA-Z]": Una cadena que comience con una letra.
  • "[0-9]%": Una cadena que contenga un solo número antes del símbolo "%".
  • ",[a-zA-Z0-9]$": Una cadena que termine en "," seguido por un caracter alfanumérico.

También se puede indicar los caracteres que NO se desean buscar, solo hay que utilizar el símbolo '^' como primer caracter en una expresión de corchetes (ej. "%[^a-zA-Z]%" Busca una cadena con una caracter que no sea una letra entre dos signos de porcentaje.

Como algunos caracteres tienen un significado especial, es necesario expandirlos (o sea, sujetarlos a ciertas limitaciones de interpretación). Por lo que la expresión "(\$|¥)[0-9]+" podría ser utilizada en una función de la siguiente manera: ereg("(\\$|¥)[0-9]+", $str). Y adivinen que símbolo será expandido dentro de esta expresión?


Autor: Dario Gomes / Traducción: Federico Cargnelutti

 
< Artículos
 
  Diseño Web y Desarrollo de Aplicaciones por Federico Cargnelutti
© Copyright 2000-2002 WebTutorial : Hosting Nixon Company