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í tabulku zachycených podřetězců, které odpovídají regulárnímu výrazovému vzoru řetězci. Pokud se nenajde žádná shoda, vrátí funkce žádný řádek.
REGEXP_MATCHES
(
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
Vrátí tabulkový výsledek následujícím způsobem:
| Název sloupce | Datový typ | Description |
|---|---|---|
match_id |
bigint | Posloupnost odpovídajících slov. |
start_position |
int | Počáteční pozice indexu |
end_position |
int | Koncová pozice indexu |
match_value |
Stejný typ jako string_expression nebo varchar |
Odpovídající výraz. |
substring_matches |
json | Dokument JSON popisující shodu |
Examples
Vrátí tabulkové výsledky, 'Learning #AzureSQL #AzureSQLDB' které začínají znakem # následovaným jedním nebo více alfanumerickými znaky (A-Z, a-z, 0-9) nebo podtržítky (_).
SELECT *
FROM REGEXP_MATCHES ('Learning #AzureSQL #AzureSQLDB', '#([A-Za-z0-9_]+)');
match_id start_position end_position match_value substring_matches
1 10 18 #AzureSQL [{"value":"AzureSQL","start":11,"length":8}]
2 20 30 #AzureSQLDB [{"value":"AzureSQLDB","start":21,"length":10}]
Vrátí řetězce, ABC které odpovídají řetězcům, které začínají písmenem A následovaným přesně dvěma znaky.
SELECT *
FROM REGEXP_MATCHES ('ABC', '^(A)(..)$');
match_id start_position end_position match_value substring_matches
1 1 3 ABC [{"value":"A","start":1,"length":1},{"value":"BC","start":2,"length":2}]