Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database Azure SQL
Managed Instance
SQL Database v Microsoft Fabric
Vrátí jeden výskyt podřetězce řetězce, který odpovídá vzoru regulárního výrazu. Pokud se nenajde žádná shoda, vrátí NULLhodnotu .
REGEXP_SUBSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , flags [ , group ] ] ] ]
)
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ů.
start
Zadejte počáteční pozici pro hledání v rámci vyhledávacího řetězce. Optional. Typ je nebo bigint.
Číslování je 1, což znamená, že první znak výrazu je 1 a hodnota musí být >= 1. Pokud je počáteční výraz menší než 1, vrátí chybu. Pokud je počáteční výraz větší než délka string_expression, vrátí NULLfunkce . Výchozí hodnota je 1.
occurrence
Výraz (kladné celé číslo), který určuje výskyt vzorového výrazu ve zdrojovém řetězci, který má být prohledán nebo nahrazen. Výchozí hodnota je 1. Vyhledá první znak string_expression. Pro kladné celé číslo n vyhledá n. výskyt začínající prvním znakem za prvním výskytem pattern_expression atd.
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) |
group
Určuje, která skupina zachycení (dílčí výraz) pattern_expression určuje pozici v rámci string_expression , která se má vrátit. Skupina zachycení (dílčí výraz) je fragment vzoru uzavřený v závorkách a může být vnořený.
Skupiny zachycení jsou očíslovány v pořadí, v jakém se zobrazí jejich levé závorky. Datový typ skupiny je int a hodnota musí být větší nebo rovna 0, a nesmí být větší než počet zachycených grup (podvýrazů) v pattern_expression. Výchozí hodnota skupiny je 0, což znamená, že pozice je založena na řetězci, který odpovídá celému vzoru.
Návratová hodnota
String.
Examples
Extrahujte název domény z e-mailové adresy.
SELECT REGEXP_SUBSTR(EMAIL, '@(.+)$', 1, 1, 'i', 1) AS DOMAIN
FROM CUSTOMERS;
Najděte první slovo ve větě, která začíná samohláskou.
SELECT REGEXP_SUBSTR(COMMENT, '\b[aeiou]\w*', 1, 1, 'i') AS WORD
FROM FEEDBACK;
Získá poslední čtyři číslice čísla platební karty.
SELECT REGEXP_SUBSTR(CARD_NUMBER, '\d{4}$') AS LAST_FOUR
FROM PAYMENTS;