Saltar al contenido

Expresiones Regulares

Descripción General

Una Expresión regular es una notación o, específicamente, una secuencia de símbolos y caracteres que expresan una cadena o patrón. Generalmente se utilizan en el área Business SQL de Vinyl para validar la entrada del usuario o limitar/encontrar un patrón específico dentro de un texto grande.

Cada vez que se utiliza LIKE en una cláusula donde con un comodín (%), estás usando expresiones regulares. Quizás estés familiarizado con la declaración. WHERE MyField LIKE 'ABCD%', pero también puedes usar corchetes para buscar un rango WHERE MyField LIKE '[A-B][CD][A-Z][ARIZONA]%' que devolverá cualquier registro con una combinación de A o B como primer carácter, C o D como segundo, cualquier carácter alfa en los siguientes dos caracteres y cualquier otra cosa al final.

La misma estructura Reg Ex se aplica a los números. Si está filtrando por un rango de valores, digamos 900-919, puede filtrar WHERE MyField IN ('900', '901', '902'... etc) pero es más limpio de usar WHERE MyField LIKE '9[0-1][0-9]' (aquí se trata de campos de cadena, no de números). Puedes encontrar números de teléfono que se ajusten al patrón. WHERE MyField LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'

A continuación se muestra un ejemplo similar al ejemplo anterior donde, en este caso, la expresión valida si los registros en FieldValue contienen las cadenas de caracteres 900S, 901S, 902S, ..., 919S.

dondecláusula.png

También puedes utilizar el ^ carácter que representa NO en la cadena WHERE MyField LIKE '[^0-9]%' que devolverá registros con un carácter no numérico como primer carácter, seguido de cualquier cosa. WHERE MyField LIKE '[A-Z][^A-Z]' devolverá registros con dos caracteres, el primero alfabético y el segundo no alfabético.

Nota

El Vinyl no admite el carácter '+' cuando se usa LIKE para expresiones regulares. Si desea utilizar este carácter, puede hacerlo utilizando el Complemento de validación Regex.

Hay una TONELADA de otras herramientas poderosas dentro de Expresiones regulares que se pueden usar con Vinyl; las mencionadas en este artículo son algunas de las más comunes. Aquí hay un enlace de tutorial si desea obtener más información: https://www.mssqltips.com/sqlservertutorial/9108/precise-alphabetic-filtering-with-regular-expressions-for-tsql/