Freigeben über


REGEXP_COUNT (Transact-SQL) Vorschau

Gilt für: SQL Server 2025 (17.x) Vorschau der Azure SQL-Datenbank azureSQL Managed InstanceSQL SQL-Datenbank in Microsoft Fabric

Anmerkung

Als Vorschaufeature unterliegt die in diesem Artikel vorgestellte Technologie ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.

Zählt die Häufigkeit, mit der ein Muster für reguläre Ausdrücke in einer Zeichenfolge abgeglichen wird.

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

Argumente

string_expression

Ein Ausdruck einer Zeichenfolge.

Dabei kann es sich um eine Konstante, Variable oder Spalte von Zeichenfolgen handeln.

Datentypen: Char, nchar, varcharoder nvarchar.

Anmerkung

Die REGEXP_LIKE, REGEXP_COUNTund REGEXP_INSTR Funktionen unterstützen LOB-Typen (varchar(max) und nvarchar(max)) bis zu 2 MB für den string_expression-Parameter .

pattern_expression

Muster für reguläre Ausdrücke, das übereinstimmen soll. In der Regel ein Textliteral.

Datentypen: Char, nchar, varcharoder nvarchar. pattern_expression unterstützt eine maximale Zeichenlänge von 8.000 Byte.

starten

Geben Sie die Startposition für die Suche innerhalb der Suchzeichenfolge an. Wahlfrei. Typ ist int oder bigint.

Die Nummerierung ist 1-basiert, d. h. das erste Zeichen im Ausdruck ist 1 und der Wert muss >= 1werden. Wenn der Startausdruck kleiner als 1ist, beginnt die zurückgegebene pattern_expression mit dem ersten Zeichen, das in string_expression angegeben ist. Wenn der Startausdruck größer als die Länge string_expression ist, gibt die Funktion zurück 0. Der Standardwert ist 1.

Wenn der Startausdruck kleiner als 1ist, gibt die Abfrage einen Fehler zurück.

Kennzeichnungen

Mindestens ein Zeichen, das die Modifizierer für die Suche nach Übereinstimmungen angibt. Der Typ ist varchar oder Zeichenmit maximal 30 Zeichen.

Beispiel: ims. Der Standardwert ist c. Wenn eine leere Zeichenfolge (' ') angegeben wird, wird sie als Standardwert ('c')behandelt. Geben Sie c oder andere Zeichenausdrücke an. Wenn das Kennzeichen mehrere widersprüchliche Zeichen enthält, verwendet SQL Server das letzte Zeichen.

Wenn Sie z. B. angeben, ic der regex-Wert den Abgleich zwischen Groß- und Kleinschreibung zurückgibt.

Wenn der Wert ein anderes Zeichen als die unter unterstützten Flagwerteenthält, gibt die Abfrage einen Fehler wie im folgenden Beispiel zurück:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
Unterstützte Flagwerte
Flagge Beschreibung
i Groß-/Kleinschreibung wird nicht beachtet (Standard false)
m Mehrzeiligen Modus: ^ und $ Zuordnen der Anfangs-/Endzeile zusätzlich zum Anfangs-/Endtext (Standard false)
s Übereinstimmung . zulassen \n (Standardfalse)
c Groß-/Kleinschreibung beachten (Standard true)

Rückgabewert

Int

Beispiele

Zählen Sie, wie oft der Buchstabe a in jedem Produktnamen angezeigt wird.

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

Zählen Sie, wie viele Produkte einen Namen haben, der mit ingendet.

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

Zählen Sie, wie viele Produkte einen Namen haben, der drei aufeinander folgende Konsonanten enthält, wobei die Groß-/Kleinschreibung ignoriert wird.

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