Fundamentos de la utilización de expresiones regulares



Introducción a la utilización de expresiones regulares

Una expresión regular describe un patrón de caracteres. Las expresiones regulares se suelen utilizar para comprobar que un valor de texto se ajusta a un patrón específico (por ejemplo, para comprobar que un número de teléfono especificado por el usuario tiene el número de dígitos correcto) o para sustituir partes de un valor de texto que coincidan con un patrón específico.

Las expresiones regulares pueden ser sencillas. Por ejemplo, se puede desear confirmar que una cadena específica coincide con "ABC" o reemplazar cada instancia de "ABC" en una cadena por otro texto. En este caso, se puede utilizar la siguiente expresión regular, que define el patrón formado por las letras A, B y C en secuencia:

/ABC/

Hay que tener en cuenta que el literal de expresión regular se delimita con el carácter barra diagonal (/).

Los patrones de expresión regular también pueden ser complejos y, a veces, aparentemente crípticos, como la siguiente expresión para detectar una dirección de correo electrónico válida:

/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/

Normalmente las expresiones regulares se utilizan para buscar patrones en cadenas y para reemplazar caracteres. En estos casos, se creará un objeto de expresión regular y se utilizará como parámetro de uno de varios métodos de la clase String. Los siguientes métodos de la clase String toman como parámetros expresiones regulares: match(), replace(), search() y split(). Para más información sobre estos métodos, consulte Búsqueda de patrones en cadenas y sustitución de subcadenas

La clase RegExp incluye los métodos siguientes: test() y exec(). Para más información, consulte Métodos para utilizar expresiones regulares con cadenas.

Tareas comunes con expresiones regulares

A continuación se muestran algunos usos comunes de las expresiones regulares, que se describen en mayor detalle en este capítulo:

  • Crear un patrón de expresión regular

  • Utilizar caracteres especiales en patrones

  • Identificar secuencias de varios caracteres (como "un número de dos dígitos" o "entre siete y diez letras")

  • Identificar cualquier carácter de un rango de letras o números (como "cualquier letra entre a y m")

  • Identificar un carácter de un conjunto de caracteres posibles

  • Identificar subsecuencias (segmentos de un patrón)

  • Detectar y reemplazar texto utilizando patrones

Conceptos y términos importantes

La siguiente lista de referencia contiene términos importantes que se utilizan en este capítulo:

  • Carácter de escape: carácter que indica que el carácter que sigue debe tratarse como un metacarácter en lugar de como un carácter literal. En sintaxis de expresiones regulares, el carácter de barra diagonal inversa (\) es el carácter de escape, por lo que una barra diagonal inversa seguida de otro carácter se interpretará como un código especial en lugar de interpretarse literalmente.

  • Indicador: carácter que especifica alguna opción sobre cómo debe utilizarse el patrón de expresión regular (p. ej., distinguir entre caracteres en mayúsculas y caracteres en minúsculas.

  • Metacarácter: carácter que tiene un significado especial en un patrón de expresión regular, en lugar de representar literalmente dicho carácter en el patrón.

  • Cuantificador: carácter (o conjunto de caracteres) que indica cuántas veces debe repetirse una parte del patrón. Por ejemplo, se puede utilizar un cuantificador para especificar que un código postal de Estados Unidos debe contener cinco o nueve números.

  • Expresión regular: sentencia de programa que define un patrón de caracteres que se puede utilizar para confirmar si otras cadenas coinciden con ese patrón o para sustituir partes de una cadena.

Ejecución de los ejemplos del capítulo

A medida que progresa en el estudio del capítulo, es posible que desee probar algunos de los listados de código. Como los listados de código de este capítulo consisten principalmente en patrones de expresiones regulares, para probar los ejemplos hay que realizar unos cuantos pasos:

  1. Cree un documento de Flash nuevo.

  2. Seleccione un fotograma clave y abra el panel Acciones.

  3. Cree una variable RegExp (expresión regular) como ésta:

    var pattern:RegExp = /ABC/;
  4. Copie el patrón del ejemplo y asígnele el valor de la variable RegExp. Por ejemplo, en la línea de código anterior, el patrón es la parte del código situada a la derecha del signo igual, sin incluir el signo de punto y coma (/ABC/).

  5. Cree una o más variables String que contengan cadenas apropiadas para probar la expresión regular. Por ejemplo, si va a crear una expresión regular para validar direcciones de correo electrónico, cree unas cuantas variables String que contengan direcciones de correo electrónico válidas y otras cuantas que no sean válidas:

    var goodEmail:String = "bob@example.com"; 
    var badEmail:String = "5@$2.99";
  6. Añada líneas de código para probar las variables String y determinar si coinciden con el patrón de la expresión regular. Éstos serán los valores que deseará mostrar en pantalla mediante la función trace() o escribiéndolos en un campo de texto en el escenario.

    trace(goodEmail, " is valid:", pattern.test(goodEmail)); 
    trace(badEmail, " is valid:", pattern.test(badEmail));

    Por ejemplo, suponiendo que pattern define el patrón de la expresión regular para una dirección de correo electrónico válida, las líneas de código anteriores escriben este texto en el panel Salida:

    bob@example.com is valid: true 
    5@$2.99 is valid: false

    Para más información sobre cómo probar valores escribiéndolos en una instancia de campo de texto en el escenario o utilizando la función trace() para imprimir los valores en el panel Salida, consulte Prueba de los listados de código de ejemplo del capítulo.