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 a posição inicial ou final da substring correspondente, dependendo do valor do argumento return_option.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
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.
start
Especifica a posição inicial da 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á 0. 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.
return_option
Especifica se a posição inicial ou final da subcadeia de caracteres correspondente deve ser retornada. Use 0 para o início e 1 para o fim. O valor padrão é 0. A consulta retorna erro para qualquer outro valor.
flag
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) |
group
Especifica qual grupo de captura (subexpression) de um pattern_expression determina a posição dentro string_expression retornar. O grupo é um fragmento de padrão entre parênteses e pode ser aninhado. Os grupos são numerados na ordem em que seus parênteses à esquerda aparecem no padrão. O valor é um inteiro e deve ser e não deve ser >= 0 maior do que o número de grupos no pattern_expression. O valor padrão é 0, que indica que a posição é baseada na cadeia de caracteres que corresponde ao pattern_expression inteiro.
Se o valor for maior que o número de grupos em pattern_expression, a função retornará 0.
Valor de retorno
Integer.
Examples
Localize a posição da primeira substring que contém apenas dígitos na coluna PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Encontre a posição da terceira ocorrência da letra a (sem distinção entre maiúsculas e minúsculas) na coluna PRODUCT_NAME.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Localize a posição do final da primeira substring que começa com t e termina com e (diferencia maiúsculas de minúsculas) na coluna PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;