Acerca de Expresiones Regulares

Una expresión regular es un grupo de letras, números y caracteres especiales utilizados para hacer coincidir datos. Puede utilizar expresiones regulares compatibles con Perl (PCRE) en la configuración de su Firebox para hacer coincidir ciertos tipos de tráfico en acciones de proxy. Por ejemplo, puede utilizar una expresión regular para bloquear conexiones a algunos sitios web y permitir conexiones a otros sitios web. También pueden denegarse conexiones SMTP cuando el destinatario no es una dirección de correo electrónico válida para la empresa. Por ejemplo, si desea bloquear partes de un sitio web que infringen la política de uso de Internet de su empresa, puede usar una expresión regular en la categoría Rutas de URL de la configuración del proxy HTTP.

Pautas generales

  • Las Expresiones Regulares en Fireware OS distinguen mayúsculas de minúsculas — Cuando crea una expresión regular, debe procurar coincidir el tipo de las letras en su expresión regular para las letras del texto que desee coincidir. La expresión regular puede modificarse para que no distinga mayúsculas de minúsculas cuando se agrega el modificador (?i) al comienzo de un grupo.
  • Las expresiones regulares en Fireware OS son diferentes de los caracteres comodín MS-DOS y Unix — Cuando modifica archivos con MS-DOS o el Símbolo del Sistema de Windows, puede utilizar ? o * para hacer coincidir uno o más caracteres en un nombre de archivo. Estos caracteres comodín simples no funcionan del mismo modo en Fireware.

Cómo crear una expresión regular

La expresión regular más simple se realiza con el texto que desea hacer coincidir. Las letras, los números y otros caracteres de impresión coinciden con la misma letra, número o carácter que el usuario ingresa. Una expresión regular realizada con letras y números puede coincidir sólo con una secuencia de caracteres que incluya a todas esas letras y números en orden.

Ejemplo: "fat" (gordo) coincide con "fat" (gordo), "fatuous" (fatuo) e "infatuated" (encaprichado), al igual que muchas otras secuencias.

Fireware OS acepta cualquier secuencia de caracteres que incluya la expresión regular. Una expresión regular con frecuencia coincide con más de una secuencia. Si se usa una expresión regular como origen de una regla Denegar, se puede bloquear algún tráfico de red por accidente. Le recomendamos probar íntegramente sus expresiones regulares antes de guardar la configuración en su dispositivo Firebox.

Para hacer coincidir diferentes secuencias de caracteres al mismo tiempo, debe usarse un carácter especial. El carácter especial más común es el punto (.), que es similar a un comodín. Cuando se pone un punto en una expresión regular, coincide con cualquier carácter, espacio o tabulación. El punto no coincide con cortes de líneas (\r\n o \n).

Ejemplo: f..t coincide con foot, feet, f&#t, f -t y f\t3t.

Para hacer coincidir un carácter especial, como el punto, debe agregarse una barra inversa (\) antes del carácter. Si no se agrega una barra inversa al carácter especial, es posible que la regla no funcione correctamente. No es necesario agregar una segunda barra inversa si el carácter en general tiene una barra inversa, como \t (detención de tabulador).

Debe agregar una barra inversa a cada uno de estos caracteres especiales para que coincidan con el carácter real: ? . * | + $ \ ^ ( ) [

Ejemplo: \$9\.99 coincide con $9.99

Caracteres hexadecimales

Para hacer coincidir caracteres hexadecimales, utilice \x o %0x%. Los caracteres hexadecimales no se ven afectados por el modificador que no distingue mayúsculas de minúsculas.

Ejemplo: \x66 o %0x66% coinciden con f, pero no pueden coincidir con F.

Repetición

Para hacer coincidir una cantidad variable de caracteres, se debe usar un modificador de repetición. Puede aplicar el modificador a un carácter único o a un grupo de caracteres. Existen cuatro tipos de modificadores de repetición:

  • Los números dentro de corchetes (como {2,4}) coinciden sólo con el primer número o también con el segundo número.
    Ejemplo: 3{2,4} coincide con 33, 333 o 3333. No coincide con 3 ó 33333.
  • El signo de interrogación (?) coincide con cero o con una ocurrencia del carácter, la clase o el grupo precedente.
    Ejemplo: me?et coincide con "met" (conoció) y "meet" (conocer).
  • El signo más (+) coincide con una o más ocurrencias del carácter, la clase o el grupo precedente.
    Ejemplo: me+t coincide con "met", "meet" y "meeeeeeeeet".
  • El asterisco (*) coincide con cero o más ocurrencias del carácter, la clase o el grupo precedente.
    Ejemplo: me*t coincide con "mt", "met", "meet" y "meeeeeeeeet".

Para aplicar modificadores a muchos caracteres al mismo tiempo, se debe conformar un grupo. Para agrupar una secuencia de caracteres, se deben colocar paréntesis alrededor de la secuencia.

Ejemplo: ba(na)* coincide con "ba", "bana", "banana" y "banananananana".

Clases de caracteres

Para hacer coincidir un carácter de un grupo, utilice corchetes angulares en lugar de paréntesis para crear una clase de caracteres. Puede aplicar modificadores de repetición a la clase de caracteres. El orden de los caracteres dentro de la clase no tiene importancia.

Los únicos caracteres especiales dentro de una clase de caracteres son el corchete angular de cierre (]), la barra inversa (\), la marca de inserción (^) y el guión (-).

Ejemplo: gr[ae]y coincide con "gray" (gris) y "grey" (gris).

Para usar una marca de inserción en la clase de caracteres, no la use como primer carácter.

Para usar un guión en la clase de caracteres, úselo como primer carácter.

Una clase de caracteres negados coincide con todos menos con los caracteres especificados. Ingrese una marca de inserción (^) al comienzo de cualquier clase de caracteres para usarla como clase de caracteres negados.

Ejemplo: [Qq][^u] coincide con Qatar, pero no con “question” o Iraq.

Rangos

Las clases de caracteres con frecuencia se usan con rangos de caracteres para seleccionar cualquier letra o número. Un rango son dos letras o números, separados por un guión (-), que marcan el inicio y la finalización de un grupo de caracteres. Cualquier carácter en el rango puede coincidir. Si se agrega un modificador de repetición a una clase de caracteres, la clase precedente se repite.

Ejemplo: [1-3][0-9]{2} coincide con 100 y 399, así como también con cualquier número intermedio.

Algunos rangos que se usan con frecuencia tienen una notación abreviada. Pueden usarse clases de caracteres abreviados dentro o fuera de otras clases de caracteres. Una clase de caracteres abreviados negados coincide con el opuesto de la coincidencia de la clase de caracteres abreviados. La siguiente tabla incluye varias clases de caracteres abreviados comunes y sus valores negados.

Clase equivalente a Invalidado equivalente a
\w Cualquier letra o número [A-Za-z0-9] \W Ni una letra ni un número
\s Cualquier carácter que no aparece en un documento impreso [ \t\r\n] \S Ningún carácter que no aparece en un documento impreso
\d Cualquier número [0-9] \D Ningún número

Puntos de referencia

Para hacer coincidir el comienzo o el final de una línea, debe usarse un punto de referencia. La marca de inserción (^) coincide con el comienzo de una línea y el signo de dólar ($) coincide con el final de una línea.

Ejemplo: ^am.*$ coincide con “ampere” si “ampere” es la única palabra de la línea. No coincide con "dame" (dama).

Se puede utilizar \b para hacer coincidir el límite de una palabra o \B para hacer coincidir cualquier posición que no sea un límite de palabra.

Existen tres tipos de límites de palabras:

  • Antes del primer carácter en la secuencia de caracteres, si el primer carácter es un carácter de palabra (\w)•
  • Después del último carácter en la secuencia de caracteres, si el último carácter es un carácter de palabra (\w)•
  • Entre un carácter de palabra (\w) y un carácter que no es de una palabra (\W)

Alternancia

La alternancia se puede usar para hacer coincidir una única expresión regular dentro de varias expresiones regulares posibles. El operador de alternancias en una expresión regular es el carácter de barra vertical partida (|). Es similar al operador booleano O.

Ejemplo: m(oo|a|e)n coincide con la primera ocurrencia de "moon" (luna), "man" (hombre) o "men" (hombres).

Expresiones regulares comunes

Coincidir el tipo de contenido PDF (tipo MIME)

^%PDF-

Coincidir cualquier dirección IP válida

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9] [0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]? [0-9][0-9]?)

Coincidir la mayoría de las direcciones de correo electrónico

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

Ver También

Acerca de las Reglas y los Conjuntos de Reglas

Agregar, Cambiar o Eliminar Reglas

Cortar y Pegar Definiciones de Reglas

Cambiar el Orden de las Reglas