REGEXP_COUNT (Transact-SQL)

Gäller för: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-slutpunkt i Microsoft Fabric och Warehouse i Microsoft FabricSQL Database i Microsoft Fabric

Den REGEXP_COUNT skalära reguljära uttrycksfunktionen räknar antalet gånger ett reguljärt uttrycksmönster matchas i en sträng.

REGEXP_COUNT
(
    string_expression,
    pattern_expression [ , start [ , flags ] ]
)

Arguments

string_expression

Ett uttryck för en teckensträng.

Kan vara en konstant, variabel eller kolumn med teckensträng.

Datatyper: char, nchar, varchareller nvarchar.

Note

Funktionerna REGEXP_* stöder LOB-typer (varchar(max) och nvarchar(max)) upp till 2 MB för string_expression-parametern.

pattern_expression

Mönster för reguljära uttryck som ska matchas. Vanligtvis en textliteral.

Datatyper: char, nchar, varchareller nvarchar. pattern_expression stöder en maximal teckenlängd på 8 000 byte.

start

Ange startpositionen för sökningen i söksträngen. Optional. Typen är int eller bigint.

Numreringen är 1-baserad, vilket innebär att det första tecknet i uttrycket är 1 och värdet måste vara >= 1. Om startuttrycket är mindre än 1börjar den returnerade pattern_expression med det första tecknet som anges i string_expression. Om startuttrycket är större än längden på string_expression returnerar 0funktionen . Standardvärdet är 1.

Om startuttrycket är mindre än 1returnerar frågan ett fel.

flags

Ett eller flera tecken som anger de modifierare som används för att söka efter matchningar. Typen är varchar eller tecken, med högst 30 tecken.

Till exempel ims. Standardvärdet är c. Om en tom sträng (' ') anges behandlas den som standardvärdet ('c'). Ange c eller andra teckenuttryck. Om flaggan innehåller flera motstridiga tecken använder SQL Server det sista tecknet.

Om du till exempel anger ic returnerar regex skiftlägeskänslig matchning.

Om värdet innehåller ett annat tecken än de som anges i flagga som stödsreturnerar frågan ett fel som liknar följande exempel:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Flaggvärden som stöds
Flag Description
i Skiftlägesokänsligt (standard false)
m Flerradsläge: ^ och $ matcha start-/slutlinje utöver start-/sluttext (standard false)
s Låt . matcha \n (standard false)
c Skiftlägeskänsligt (standard true)

Returvärde

int

Plattformsstöd

  • I Azure SQL Managed Instance finns T-SQL:s reguljära uttrycksfunktioner endast tillgängliga med policyn för uppdatering SQL Server 2025 eller Alltid-up-to-datum.
  • T-SQL-reguljära uttrycksfunktioner finns tillgängliga i Azure SQL Database, SQL Database in Fabric och från och med SQL Server 2025.
  • T-SQL-reguljära uttrycksfunktioner finns inte tillgängliga i SQL Server 2022 eller tidigare versioner.
  • T-SQL:s reguljära uttrycksskalärfunktioner finns tillgängliga som förhandsvisningsfunktion i Fabric Data Warehouse. För mer information, se Reguljära uttrycksfunktioner i Fabric Data Warehouse. T-SQL:s tabellvärdsfunktioner med reguljära uttryck finns inte tillgängliga i Fabric Data Warehouse.

Examples

Räkna hur många gånger bokstaven a visas i varje produktnamn.

SELECT PRODUCT_NAME,
       REGEXP_COUNT(PRODUCT_NAME, 'a') AS A_COUNT
FROM PRODUCTS;

Räkna hur många produkter som har ett namn som slutar med ing.

SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, 'ing$') > 0;

Räkna hur många produkter som har ett namn som innehåller tre konsonanter i följd, och ignorera skiftläge.

SELECT COUNT(*)
FROM PRODUCTS
WHERE REGEXP_COUNT(PRODUCT_NAME, '[^aeiou]{3}', 1, 'i') > 0;