Partilhar via


REGEXP_SPLIT_TO_TABLE

Aplica-se a: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

Retorna uma tabela de cadeias de caracteres divididas, delimitadas pelo padrão regex. Se não houver correspondência com o padrão, a função retornará a cadeia de caracteres.

REGEXP_SPLIT_TO_TABLE
(
    string_expression,
    pattern_expression [ , flags ]
)

Requer o nível de compatibilidade do banco de dados 170. Para definir o nível de compatibilidade do banco de dados, revise o nível de compatibilidade ALTER DATABASE (Transact-SQL).

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.

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. A predefiniçã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)

Returns

REGEXP_SPLIT_TO_TABLE Devolve a seguinte tabela de duas colunas:

Nome da coluna Tipo de dados Description
value Mesmo tipo que string_expression ou varchar Se o delimitador for encontrado, é a substring correspondente. Caso contrário, é toda a expressão.
ordinal bigint Valor de índice baseado em 1 de cada posição de substring da expressão de entrada.

Retornar uma divisão de tabela para the quick brown fox jumps over the lazy dog.

SELECT *
FROM REGEXP_SPLIT_TO_TABLE ('the quick brown fox jumps over the lazy dog', '\s+');
Value  Ordinal
the    1
quick  2
brown  3
fox    4
jumps  5
over   6
the    7
lazy   8
dog    9