Sdílet prostřednictvím


REGEXP_SPLIT_TO_TABLE

Platí pro: SQL Server 2025 (17.x) Azure SQL Database Azure SQLManaged InstanceSQL Database v Microsoft Fabric

Vrátí tabulku řetězců s rozdělením odděleným vzorem regulárního výrazu. Pokud se vzor neshoduje, vrátí funkce řetězec.

REGEXP_SPLIT_TO_TABLE
(
    string_expression,
    pattern_expression [ , flags ]
)

Vyžaduje úroveň kompatibility databáze 170. Pokud chcete nastavit úroveň kompatibility databáze, projděte si úroveň kompatibility ALTER DATABASE (Transact-SQL).

Note

Regulární výrazy jsou k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.

Arguments

string_expression

Výraz řetězce znaků.

Může to být konstanta, proměnná nebo sloupec řetězce znaků.

Datové typy: char, nchar, varcharnebo nvarchar.

Note

Funkce REGEXP_LIKEa , REGEXP_COUNTREGEXP_INSTR podporují typy LOB (varchar(max) a nvarchar(max)) až 2 MB pro string_expression parametr.

pattern_expression

Vzor regulárního výrazu, který se má shodovat. Obvykle textový literál.

Datové typy: char, nchar, varcharnebo nvarchar. pattern_expression podporuje maximální délku znaků 8 000 bajtů.

flags

Jeden nebo více znaků, které určují modifikátory používané k hledání shod. Typ je varchar nebo znak, s maximálně 30 znaky.

Například: ims. Výchozí hodnota je c. Pokud je zadaný prázdný řetězec (' '), bude považován za výchozí hodnotu ('c'). Zadejte c nebo jiné výrazy znaků. Pokud příznak obsahuje více protichůdných znaků, sql Server použije poslední znak.

Pokud například zadáte ic regulární výraz vrátí porovnávání s rozlišováním velkých a malých písmen.

Pokud hodnota obsahuje jiný znak než ty uvedené v podporované hodnoty příznaku, dotaz vrátí chybu jako v následujícím příkladu:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Podporované hodnoty příznaku
Flag Description
i Nerozlišují se malá a velká písmena (výchozí false)
m Režim více řádků: ^ a $ porovná počáteční/koncový řádek kromě počátečního/koncového textu (výchozí false)
s Nechte . odpovídat \n (výchozí false)
c Malá a velká písmena (výchozí true)

Returns

REGEXP_SPLIT_TO_TABLE vrátí následující tabulku se dvěma sloupci:

Název sloupce Datový typ Description
value Stejný typ jako string_expression nebo varchar Pokud se oddělovač najde, jedná se o odpovídající podřetězenec. Jinak se jedná o celý výraz.
ordinal bigint Indexová hodnota každé pozice podřetězce založená na 1 z vstupního výrazu.

Vrátí rozdělení tabulky pro 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