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í počáteční nebo koncovou pozici odpovídajícího podřetězdce v závislosti na hodnotě argumentu return_option.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , 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
Určuje 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í 0funkce . 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 nvyhledá nth výskyt začínající prvním znakem za prvním výskytem pattern_expression atd.
return_option
Určuje, zda má být vrácena počáteční nebo koncová pozice odpovídajícího podřetědce. Pro začátek použijte 0 a 1 na konec. Výchozí hodnota je 0. Dotaz vrátí chybu pro jakoukoli jinou hodnotu.
flag
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í (subexpression) pattern_expression určuje pozici v string_expression , která se má vrátit. Skupina je fragment vzoru uzavřený v závorkách a může být vnořený. Skupiny jsou očíslovány v pořadí, ve kterém se jejich levé závorky zobrazují ve vzoru. Hodnota je celé číslo a nesmí být >= 0 větší než počet skupin v pattern_expression. Výchozí hodnota je 0, což označuje, že pozice je založena na řetězci, který odpovídá celému pattern_expression.
Pokud je hodnota větší než počet skupin v pattern_expression, vrátí 0funkce .
Návratová hodnota
Integer.
Examples
Najděte pozici prvního podřetětěce, který obsahuje pouze číslice ve sloupci PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Najděte pozici třetího výskytu dopisu a (nerozlišují malá a velká písmena) ve sloupci PRODUCT_NAME.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Najděte pozici konce prvního podřetětěce začínající t a končí e (rozlišují se malá a velká písmena) ve sloupci PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;