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)
Banco de Dados
SQL do AzureBanco de DadosSQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azure
banco de dados SQL no Microsoft Fabric
Retorna a posição inicial ou final da subcadeia de caracteres correspondente, dependendo do valor do argumento return_option.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Note
Expressões regulares estão disponíveis na Instância Gerenciada de SQL do Azure com a política de atualização do SQL 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 e REGEXP_COUNTREGEXP_INSTR funções dão suporte a 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. Normalmente, um literal de texto.
Tipos de dados: char, nchar, varcharou nvarchar. pattern_expression dá suporte a um comprimento máximo de caractere de 8.000 bytes.
start
Especifica a posição inicial da pesquisa na cadeia de caracteres de pesquisa. Optional. O tipo é int ou bigint.
A numeração é baseada em 1, o que significa que o primeiro caractere na 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 padrão dentro da cadeia de caracteres de origem será pesquisada ou substituída. O padrão é 1. Pesquisa 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 final. O valor padrão é 0. A consulta retorna um erro para qualquer outro valor.
flag
Um ou mais caracteres que especificam os modificadores usados para pesquisar correspondências. O tipo é varchar ou char, com um máximo de 30 caracteres.
Por exemplo, ims. O padrão é c. Se uma cadeia de caracteres vazia (' ') for fornecida, ela será tratada como o valor padrão ('c'). Forneça c ou qualquer outra expressão de caractere. 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á correspondência que diferencia maiúsculas de minúsculas.
Se o valor contiver um caractere diferente daqueles listados em valores de sinalizador com suporte, 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 com suporte
| Flag | Description |
|---|---|
i |
Não diferencia maiúsculas de minúsculas (padrão false) |
m |
Modo de várias linhas: ^ e $ corresponder à linha de início/término, além do texto de início/término (padrão false) |
s |
Permitir . correspondência \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 do padrão entre parênteses e pode ser aninhado. Os grupos são numerados na ordem em que os parênteses esquerdos aparecem no padrão. O valor é um inteiro e deve ser >= 0 e não deve ser maior 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 a toda a pattern_expression.
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 subcadeia de caracteres que contém apenas dígitos na coluna PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Localize a posição da terceira ocorrência da letra a (não diferencia maiúsculas de 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 subcadeia de caracteres 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;