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)
Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Retorna uma cadeia de caracteres de origem modificada substituída por uma cadeia de caracteres de substituição, onde a ocorrência do padrão de expressão regular foi encontrada. 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 ] ] ] ]
)
Note
As expressões regulares estão disponíveis na Instância Gerenciada SQL do Azure com a política de atualizaçãoSQL Server 2025 ou Always-up-to-date.
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_LIKEfunções , REGEXP_COUNTe REGEXP_INSTR suportam tipos de 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. O string_replacement pode ser dos tipos de dados char, varchar, nchar e nvarchar. 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 especifica qual ocorrência da expressão de padrão dentro da cadeia de caracteres de origem a ser pesquisada ou substituída. O padrão é 1. Pesquisas no primeiro caractere do string_expression. Para um inteiro npositivo, ele procura a nth ocorrência começando com o primeiro caractere após a primeira ocorrência do pattern_expression, e assim por diante.
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.
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;