Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x) Versão prévia
do Banco de Dados
SQL do Azurebanco de dadosSQL do Banco de Dados SQL do Azure banco de dados SQL gerenciado
no Microsoft Fabric
Este artigo apresenta expressões regulares para o SQL Server.
Observação
Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.
Uma expressão regular, ou regex, é uma sequência de caracteres que define um padrão de pesquisa para texto. O Regex é comumente usado para uma variedade de tarefas, incluindo correspondência de padrões, validação de dados, transformação de dados e consulta. Ele oferece uma maneira flexível e eficiente de pesquisar, manipular e lidar com operações de dados complexas.
Essa implementação da expressão regular baseia-se na biblioteca de expressões regulares RE2. Para obter mais informações, visite a Sintaxe de Expressão Regular RE2.
Por exemplo:
Função | Descrição |
---|---|
REGEXP_LIKE | Retorna um valor booliano que indica se a entrada de texto corresponde ao padrão regex. |
REGEXP_REPLACE | Retorna uma cadeia de caracteres de origem modificada substituída por uma cadeia de caracteres de substituição, em que a ocorrência do padrão regex foi encontrada. |
REGEXP_SUBSTR | Extrai partes de uma cadeia de caracteres com base em um padrão de expressão regular. Retorna a ocorrência N de uma subcadeia de caracteres que corresponde ao padrão regex. |
REGEXP_INSTR | Retorna a posição inicial ou final da subcadeia de caracteres correspondente, dependendo da opção fornecida. |
REGEXP_COUNT | Retorna uma contagem do número de vezes que o padrão regex ocorre em uma cadeia de caracteres. |
REGEXP_MATCHES | Retorna uma tabela de subcadeias de caracteres capturadas que correspondem a um padrão de expressão regular a uma cadeia de caracteres. Se nenhuma correspondência for encontrada, a função não retornará nenhuma linha. |
REGEXP_SPLIT_TO_TABLE | Retorna uma tabela de cadeias de caracteres dividida, delimitada pelo padrão regex. Se não houver correspondência com o padrão, a função retornará a cadeia de caracteres. |
Expressões regulares podem ser compostas por caracteres literais e meta-caracteres, que têm significados e funções especiais.
Uma expressão regular simples é um único caractere literal. Os caracteres correspondem a si mesmos, exceto pelos meta-caracteres. Os meta-caracteres incluem *
, +
, ?
, (
, , )
ou |
. Para corresponder a um meta-caractere, escape-o com uma barra invertida. Por exemplo, \*
corresponde ao caractere literal asterisco (*
).
Caracteres de expressão regular aceitos
Expressões de caractere único
Tipos de expressões de caractere único | Exemplos |
---|---|
qualquer caractere, possivelmente incluindo nova linha (s=true) | . |
classe de caractere | [xyz] |
classe de caractere negada | [^xyz] |
Classes de caracteres Perl | \d |
classe de caractere Perl negada | \D |
Classes de caracteres ASCII | [[:alpha:]] |
classe de caractere ASCII negada | [[:^alpha:]] |
Classe de caractere unicode (nome de uma letra) | \pN |
classe de caractere Unicode | \p{Greek} |
classe de caractere Unicode negada (nome de uma letra) | \PN |
classe de caractere Unicode negada | \P{Greek} |
Classes de caracteres Perl
A tabela a seguir lista as classes de caracteres Perl com suporte no momento.
Classes de caracteres Perl (todas somente ASCII) | Descrição |
---|---|
\d |
dígitos ( [0-9] ) |
\D |
não são dígitos ( [^0-9] ) |
\s |
espaço em branco ( [\t\n\f\r ] ) |
\S |
não é espaço em branco ( [^\t\n\f\r ] ) |
\w |
caracteres de palavra ( [0-9A-Za-z_] ) |
\W |
caracteres não alfabéticos ( [^0-9A-Za-z_] ) |
classe de caractere ASCII
A tabela a seguir lista as classes de caracteres ASCII com suporte no momento.
classe de caractere ASCII | Descrição |
---|---|
[[:alnum:]] |
alfanumérico ( [0-9A-Za-z] ) |
[[:alpha:]] |
alfabético ( [A-Za-z] ) |
[[:ascii:]] |
ASCII ( [\x00-\x7F] ) |
[[:blank:]] |
em branco ( [\t ] ) |
[[:cntrl:]] |
controle ( [\x00-\x1F\x7F] ) |
[[:digit:]] |
dígitos ( [0-9] ) |
[[:graph:]] |
gráfico ( [!-~] ou [A-Za-z0-9!“#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~] ) |
[[:lower:]] |
maiúsculas e minúsculas ( [a-z] ) |
[[:print:]] |
imprimível ( [ -~] ou [ [:graph:]] ) |
[[:punct:]] |
pontuação ( [!-/:-@[-\``{-~] ) |
[[:space:]] |
espaço em branco ( [\t\n\v\f\r ] ) |
[[:upper:]] |
maiúsculas ( [A-Z] ) |
[[:word:]] |
caracteres de palavra ( [0-9A-Za-z_] ) |
[[:xdigit:]] |
dígito hex ( [0-9A-Fa-f] ) |
Caracteres literais
- Cartas
- Números
- Símbolos
Metacaracters
-
*
corresponde a zero ou mais ocorrências do caractere anterior -
^
corresponde ao início de uma linha
Agrupamentos
Agrupar e capturar partes do padrão com:
- Parênteses
( )
- Colchetes
[ ]
- Chaves
{ }
Sinalizadores
Use sinalizadores para modificar o comportamento da expressão. Por exemplo:
i
m
s
c
Essa implementação dá suporte ao padrão POSIX de expressões regulares após RE2 e tem suporte para o sabor PCRE/PCRE2 da sintaxe de expressões regulares, que é compatível com a maioria das ferramentas e mecanismos de expressão regular modernos. Há diferentes tipos de expressões regulares, como POSIX, ANSI, Perl e PCRE, que têm sintaxe e recursos diferentes.
Requisitos
- Uma ferramenta de cliente SQL, como o Azure Data Studio, o SQL Server Management Studio ou o Visual Studio Code.
- Um conhecimento básico da sintaxe do SQL e das consultas.
- Uma compreensão básica da sintaxe de expressão regular e conceitos.
Perguntas Freqüentes
Qual é o impacto no desempenho do uso do regex?
As consultas Regex podem ter um impacto no desempenho dependendo da complexidade do padrão regex, do tamanho dos dados de texto e do número de linhas envolvidas. Você pode usar o plano de execução e as estatísticas para monitorar e otimizar o desempenho de suas consultas regex.
Problemas conhecidos, comportamentos e limitações
Estes são os itens que atualmente não têm suporte nesta versão prévia:
- Tipos de dados LOB (varchar(max) ou nvarchar(max)) para
string_expressions
- Não há suporte para funções de expressão regular em tabelas OLTP com otimização de memória