Por favor habilite JavaScript para visualizar este sitio.

MDaemon Servidor de Correo 25.0

Navegación: Menú Seguridad > Filtro de Contenido y AntiVirus > Editor del Filtro de Contenido > Reglas

Usar Expresiones Regulares en sus Reglas de Filtrado

Desplazar Previo Inicio Siguiente Más

El sistema de Filtro de Contenido soporta las búsquedas por expresión regular, que es un sistema versátil que hace posible buscar no solamente cadenas específicas de texto, sino también patrones. Las expresiones regulares contienen una mezcla de texto llano y caracteres especiales que indican el tipo de comparación a realizar, y pueden por lo tanto hacer sus reglas de Filtro de Contenido más potentes y mejor orientadas.

¿Qué son las Expresiones Regulares?

Una expresión regular (regexp) es un patrón de texto que consiste en una combinación de caracteres especiales conocidos como metacaracteres y caracteres de texto alfanuméricos, o "literales" (abc, 123, y demás). El patrón se usa para comparar cadenas de texto—siendo el resultado de la comparación positivo o no. Las regexps se usan primariamente para comparaciones de texto regular y para búsquedas y sustituciones.

Los metacaracteres son caracteres especiales que tienen funciones específicas y usos dentro de expresiones regulares. La implementación regexp dentro del sistema de Filtro de Contenido de MDaemon permite los siguientes metacaracteres:

\ | () [] ^ $ * + ? . <>

Metacaracter

Descripción

\

Cuando se usa antes de un metacaracter, la barra invertida ( "\" ) hace que el metacaracter se trate como carácter literal. Esto es necesario si quiere que la expresión regular busque uno de los caracteres especiales que se usan como metacaracteres. Por ejemplo, para buscar "+" su expresión debe incluir "\+".

|

El carácter alternación (también llamado "o" o "barra") se usa cuando o bien quiere que cualquiera de las expresiones de al lado del carácter concuerden con la cadena objeto. La regexp "abc|zyz" comparará cualquier aparición de "abc" o "xyz" cuando busque una cadena de texto.

[...]

Un conjunto de caracteres contenido entre corchetes ("[" y "]") significa que cualquier carácter en el conjunto puede concordar con la cadena de texto buscada. Un guion ("-") entre los caracteres en los corchetes denota un rango de caracteres. Por ejemplo, si busca la cadena "abc" con la regexp "[a-z]" encontrará tres resultados: "a", "b", y "c". Si utiliza la expresión "[az" sólo resultará en una coincidencia: "a".

^

Denota el principio de línea. En la cadena de destino "abc ab a" la expresión "^a" devolverá un único resultado —el primer carácter en la cadena objeto. La regexpr "^ab" también devolverá un resultado —los primeros dos caracteres en la cadena objeto.

[^...]

El carácter ("^") inmediatamente después del corchete izquierdo ("[") tiene un significado distinto. Se usa para excluir los caracteres restantes dentro de los corchetes de coincidir con la cadena objeto. La expresión "[^0-9]" indica que el carácter objeto no debe ser un dígito.

(...)

El paréntesis afecta al orden de la evaluación de los patrones, y también sirve como expresión etiquetada que se puede usar en expresiones de búsqueda y reemplazo.

Los resultados de una búsqueda con una expresión regular se guardan temporalmente y pueden ser usados en la expresión de reemplazar para construir una nueva expresión. En la expresión de reemplazar puede incluir un carácter "$0" o "\0", que será reemplazado por la sub-cadena encontrada por la expresión regular durante la búsqueda. Así, si la expresión de búsqueda "a(bcd)e" encuentra una sub-cadena coincidente, la expresión reemplazar de "123-$0-123" reemplazará el texto encontrado con "123-abcde-123".

Similarmente, también puede usar caracteres especiales "$1", "$2", "$3", y demás en la expresión reemplazar. Estos caracteres se reemplazarán sólo con los resultados de la expresión etiquetar en lugar de una coincidencia de sub-cadena completa. El número siguiente a la barra invertida denota cuál es la expresión etiquetada a la que quiere referenciar (en el caso de una regexp conteniendo más de una expresión etiquetada). Por ejemplo, si su expresión encontrar es "(123)(456)" y su expresión reemplazar "a-\2-b-\1" entonces una sub-cadena coincidente se reemplazará con "a-456-b-123" mientras que una expresión reemplazar de "a-\0-b" se reemplazará con "a-123456-b"

$

El símbolo del dólar ("$") denota el final de línea. En la cadena de texto "13 321 123" la expresión "3$" devuelve un resultado—el último carácter en la cadena. La regexp "123$" también devuelve un resultado —los últimos tres caracteres en la cadena objeto.

*

El cuantificador asterisco ("*") indica que el carácter a la izquierda debe resultar en cero o más ocurrencias del carácter en línea. Así, "1*abc" coincidirá con el texto "111abc" y "abc".

+

Similar al cuantificador asterisco, el cuantificador "+" indica que el carácter a la izquierda debe coincidir con una o más ocurrencias del carácter en línea. Así, "1+abc" coincidirá con el texto "111abc" pero no "abc".

?

El cuantificador de interrogante ("?") indica que el carácter a su izquierda debe coincidir una o cero veces. Así, "1?abc" coincidirá con el texto "abc", y coincidirá con la porción "1abc" de "111abc".

.

El metacaracter punto (".") coincidirá con cualquier carácter. Así pues ".+abc" coincidirá con "123456abc", y "a.c" coincidirá con "aac", "abc", "acc", y demás.

Condiciones y Acciones elegibles

Las expresiones regulares se pueden usar en cualquier Condición de regla de filtro de Encabezado. Por ejemplo, una regla que use la condición "if the FROM HEADER contains". Las expresiones regulares también se pueden usar en la condición "if the MESSAGE BODY contains".

Las expresiones regulares pueden ser usadas en dos Acciones de las reglas de Filtro de Contenido: "Search and Replace Words in a Header" y "Search and Replace Words in the Message Body."

Las expresiones regulares usadas en las condiciones del Filtro de Contenido no son sensibles a mayúsculas. Las mayúsculas no se tomarán en consideración.

La sensibilidad a mayúsculas en expresiones regulares usada en las acciones de las reglas del Filtro de Contenido es opcional. Cuando se crea la regexp dentro de la acción de la regla, tendrá la opción de activar/desactivar la sensibilidad a mayúsculas.

Configurar una Regexp en una Condición de Regla

Para configurar una condición de cabecera o cuerpo de mensaje para que use una expresión regular:

1.En el diálogo de Crear Regla, haga clic en la casilla que corresponde a la condición de encabezado o cuerpo de mensaje que desea insertar en su regla.

2.En el área de sumario al final del diálogo de Crear Regla, haga clic en el enlace "contains specific strings" que corresponde a la condición que ha seleccionado en el paso 1. Esto abrirá el diálogo de Especificar Texto de búsqueda.

3.Haga clic en el enlace "contains" en el área "Cadenas actualmente especificadas...".

4.Escoja "Matches Regular Expression" del cuadro de lista desplegable, y haga clic en Aceptar.

5.Si necesita ayuda cuando cree su regexp o quiere probarla entonces haga clic en "Probar expresión regular". Si no necesita usar el diálogo de Probar Expresión Regular entonces introduzca su regexp en el cuadro de texto proporcionado, haga clic en Agregar y luego vaya al paso 8.

6.Escriba su expresión regular en el cuadro de texto "Buscar expresión". Para simplificar el proceso hemos proveído un menú de acceso directo que se puede usar de manera sencilla para insertar los metacaracteres deseados en su regexp.  Haga clic en el botón ">" para acceder a este menú. Cuando escoja una opción de este menú, su correspondiente metacaracter será insertado en la expresión y el punto de inserción de texto se moverá al lugar adecuado requerido por el carácter.

7.Teclee cualquier texto que desee usar para probar su expresión en el área de texto proporcionada, y haga clic en Probar. Cuando haya acabado de probar su expresión, haga clic en Aceptar.

8.Haga clic en Aceptar.

9.Continúe creando su regla normalmente.

Configurar una Regexp en una Acción de Regla

Para configurar una acción "Search and Replace Words in…" para que use una expresión regular:

1.En el diálogo Crear Regla, haga clic en la casilla que corresponde a la acción "Search and Replace Words in..." que desea insertar en su regla.

2.En el área de sumario al final del diálogo Crear Regla, haga clic en el enlace "specify information" que corresponde a la acción seleccionada en el paso 1. Esto abrirá el cuadro de Buscar y Reemplazar.

3.Si escoge la acción "Search...header" en el paso 1, entonces utilice la lista desplegable indicada para escoger el encabezado que desea buscar, o escriba un encabezado en el cuadro si el encabezado deseado no está listado. Si no escogió la acción "Search...header" en el paso 1, entonces sáltese este paso.

4.Teclee la expresión de búsqueda que desea utilizar en esta acción. Para simplificar el proceso hemos proveído un menú de acceso directo que se puede usar de manera sencilla para insertar los metacaracteres deseados en su regexp.  Haga clic en el botón ">" para acceder a este menú. Cuando escoja una opción de este menú, su correspondiente metacaracter será insertado en la expresión y el punto de inserción de texto se moverá al lugar adecuado requerido por el carácter.

5.Teclee la expresión de reemplazar que desea usar en esta acción. Al igual que en la expresión de búsqueda hemos proveído de un menú de acceso directo de metacaracteres para esta opción también. Deje este cuadro en blanco si desea eliminar la sub-cadena coincidente en lugar de reemplazarla con más texto.

6.Haga clic en "Coincidir con mayúsculas y minúsculas" si desea que la expresión sea sensible a mayúsculas.

7.Haga clic en Expresión Regular si desea que las cadenas de buscar y reemplazar se traten como expresiones regulares. De otro modo cada una será tratada como una búsqueda y reemplazo simple de sub-cadena—buscará una coincidencia del literal exacto del texto en lugar de procesar la expresión regular.

8.Si no necesita comprobar su expresión puede saltarse este paso. Si necesita comprobar su expresión haga clic en "Ejecutar prueba." En el diálogo de comprobación de Buscar y Reemplazar, teclee sus expresiones de buscar y reemplazar y el texto con el que desea probarlas, luego haga clic en Probar. Cuando haya acabado de probar sus regexps haga clic en Aceptar.

9.Haga clic en Aceptar.

10.Continúe creando su regla normalmente.