Expressões Regulares¶
Visão Geral¶
Uma Expressão Regular é uma notação ou, especificamente, uma sequência de símbolos e caracteres que expressam uma string ou padrão. Eles geralmente são usados na área Business SQL do Vinyl para validar a entrada do usuário ou restringir/encontrar um padrão específico em um grande trecho de texto.
Sempre que LIKE é usado em uma cláusula where com um curinga (%
), você está usando expressões regulares. Você pode estar familiarizado com a declaração WHERE MyField LIKE 'ABCD%'
, mas você também pode usar colchetes para pesquisar um intervalo WHERE MyField LIKE '[A-B][CD][A-Z][A-Z]%'
que retornará qualquer registro com uma combinação de A ou B como o primeiro caractere, C ou D como o segundo, quaisquer caracteres alfa nos próximos dois caracteres e qualquer outra coisa no final.
A mesma estrutura Reg Ex se aplica aos números. Se você estiver filtrando em um intervalo de valores, digamos 900-919, poderá filtrar WHERE MyField IN ('900', '901', '902'... etc)
mas é mais limpo de usar WHERE MyField LIKE '9[0-1][0-9]'
(lidando com campos de string aqui, não com números). você pode encontrar números de telefone que se encaixem no padrão WHERE MyField LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'
Abaixo está um exemplo semelhante ao exemplo acima onde, neste caso, a expressão está validando se os registros em FieldValue contêm as cadeias de caracteres 900S, 901S, 902S, ..., 919S.
Você também pode usar o ^
caractere que representa NOT na string WHERE MyField LIKE '[^0-9]%'
que retornará registros com um caractere não numérico como primeiro caractere, seguido por qualquer coisa. WHERE MyField LIKE '[A-Z][^A-Z]'
retornará registros com dois caracteres, sendo o primeiro alfabético e o segundo não alfabético.
Nota
O Vinyl não suporta o caractere '+' ao usar LIKE
para Regex. Se você deseja usar esse caractere, você pode fazê-lo usando o Regex Validation Plugin.
Existem TONELADAS de outras ferramentas poderosas dentro de Expressões Regulares que podem ser usadas com Vinyl - as mencionadas neste artigo são algumas das mais comuns usadas. Aqui está um link do tutorial se você quiser saber mais: https://www.mssqltips.com/sqlservertutorial/9108/precise-alphabetic-filtering-with-regular-expressions-for-tsql/