Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Base de Dados SQL do Azure
AzureSQL Managed
Instance SQL Analytics endpoint em Microsoft Fabric e Warehouse em Microsoft Fabric Base
de dados SQL no Microsoft Fabric
A REGEXP_REPLACE função escalar de expressão regular devolve uma cadeia fonte modificada substituída por uma cadeia de substituição, onde se encontra a ocorrência do padrão de expressão regular. Se nenhuma correspondência for encontrada, a função retornará a cadeia de caracteres original.
REGEXP_REPLACE
(
string_expression,
pattern_expression [ , string_replacement [ , start [ , occurrence [ , flags ] ] ] ]
)
Arguments
string_expression
Uma expressão de uma cadeia de caracteres.
Pode ser uma constante, variável ou coluna de cadeia de caracteres.
Tipos de dados: char, nchar, varcharou nvarchar.
Note
As REGEXP_* funções suportam tipos LOB (varchar(max) e nvarchar(max)) até 2 MB para o parâmetro string_expression .
pattern_expression
Padrão de expressão regular a ser correspondido. Geralmente um texto literal.
Tipos de dados: char, nchar, varcharou nvarchar. pattern_expression suporta um comprimento máximo de caracteres de 8.000 bytes.
string_replacement
Expressão de cadeia de caracteres que especifica a cadeia de caracteres de substituição para substrings correspondentes e substitui as substrings correspondidas pelo padrão. Podem string_replacement ser de tipos de dados char, varchar, nchar, nvarchar, varchar(max) ou nvarchar(max) (os tipos LOB são suportados até 2 MB). Se uma string vazia ('') for especificada, a função removerá todas as substrings correspondentes e retornará a string resultante. A cadeia de caracteres de substituição padrão é a cadeia vazia ('').
O string_replacement pode conter \n, onde n é de 1 a 9, para indicar que a substring de origem correspondente ao n'ésimo grupo entre parênteses (subexpressão) do padrão deve ser inserida, e pode conter & para indicar que a substring correspondente ao padrão inteiro deve ser inserida. Escreva \ se precisar colocar uma barra invertida literal no texto de substituição.
Por exemplo
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Returns:
(123) 456-7890
Se o fornecido \n em string_replacement for maior do que o número de grupos no pattern_expression, a função ignorará o valor.
Por exemplo:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
start
Especifique a posição inicial para a pesquisa dentro da cadeia de caracteres de pesquisa. Optional. Tipo é int ou bigint.
A numeração é baseada em 1, o que significa que o primeiro caractere da expressão é 1 e o valor deve ser >= 1. Se a expressão inicial for menor que 1, retornará o erro. Se a expressão inicial for maior que o comprimento de string_expression, a função retornará string_expression. O padrão é 1.
occurrence
Uma expressão (inteiro positivo) que especifique qual a ocorrência da expressão do padrão na cadeia de origem deve ser pesquisada ou substituída. O valor padrão é 0, o que significa que todas as ocorrências do pattern_expression são substituídas. Para um inteiro npositivo , procura string_expression a nésima ocorrência, continuando a pesquisa a partir do carácter imediatamente após cada correspondência anterior.
flags
Um ou mais caracteres que especificam os modificadores usados para pesquisar correspondências. Type é varchar ou char, com um máximo de 30 caracteres.
Por exemplo, ims. O padrão é c. Se uma (' ') de cadeia de caracteres vazia for fornecida, ela será tratada como o valor padrão ('c'). Forneça c ou quaisquer outras expressões de caracteres. Se o sinalizador contiver vários caracteres contraditórios, o SQL Server usará o último caractere.
Por exemplo, se você especificar ic o regex retornará a correspondência que diferencia maiúsculas de minúsculas.
Se o valor contiver um caractere diferente daqueles listados em valores de sinalizador suportados, a consulta retornará um erro como o exemplo a seguir:
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Valores de sinalizador suportados
| Flag | Description |
|---|---|
i |
Não diferencia maiúsculas de minúsculas (padrão false) |
m |
Modo multi-linha: e ^ corresponder a linha de início/fim, $ além do texto de início/fim (padrãofalse) |
s |
Deixar . corresponder \n (padrão false) |
c |
Diferencia maiúsculas de minúsculas (padrão true) |
Valor de retorno
Expression.
Suporte da plataforma
- Em Azure SQL Managed Instance, as funções de expressões regulares do T-SQL estão disponíveis apenas com a política de atualização de data SQL Server 2025 ou Always-up-to.
- As funções de expressão regular do T-SQL estão disponíveis no Base de Dados SQL do Azure, SQL Database no Fabric e a partir do SQL Server 2025.
- As funções de expressão regular do T-SQL não estão disponíveis no SQL Server 2022 ou versões anteriores.
- As funções escalares de expressões regulares do T-SQL estão disponíveis como funcionalidade de pré-visualização no Fabric Data Warehouse. Para mais informações, veja Funções de expressões regulares em Fabric Data Warehouse. As funções de valores de tabela com expressões regulares do T-SQL não estão disponíveis em Fabric Data Warehouse.
Examples
Substitua todas as ocorrências de a ou e por X nos nomes dos produtos.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Substitua a primeira ocorrência de cat ou dog por pet nas descrições do produto
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Substitua os últimos quatro dígitos dos números de telefone por asteriscos
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;