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
Spočítá, kolikrát se v řetězci shoduje vzor regulárního výrazu.
REGEXP_COUNT
(
string_expression,
pattern_expression [ , start [ , flags ] ]
)
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ácené pattern_expression začíná prvním znakem zadaným v string_expression. Pokud je počáteční výraz větší než délka string_expression, vrátí 0funkce . Výchozí hodnota je 1.
Pokud je počáteční výraz menší než 1, dotaz vrátí chybu.
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) |
Návratová hodnota
int
Examples
Spočítejte, kolikrát se písmeno a zobrazí v každém názvu produktu.
SELECT PRODUCT_NAME,
REGEXP_COUNT(PRODUCT_NAME, 'a') AS A_COUNT
FROM PRODUCTS;
Spočítejte, kolik produktů má název, který končí ing.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, 'ing$') > 0;
Spočítejte, kolik produktů má název, který obsahuje tři po sobě jdoucí souhlásky a ignoruje malá a velká písmena.
SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, '[^aeiou]{3}', 1, 'i') > 0;