Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2025 (17.x)
Azure SQL-Datenbank
AzureSQL Managed Instance
SQL SQL-Datenbank in Microsoft Fabric
Die REGEXP_MATCHES tabellenwertige reguläre Ausdrucksfunktion liefert eine Tabelle mit erfassten Teilzeichenketten, die ein reguläres Ausdrucksmuster einer Zeichenkette zuordnen. Wenn keine Übereinstimmung gefunden wird, gibt die Funktion keine Zeile zurück.
REGEXP_MATCHES
(
string_expression,
pattern_expression [ , flags ]
)
Arguments
string_expression
Ein Ausdruck einer Zeichenfolge.
Dabei kann es sich um eine Konstante, Variable oder Spalte von Zeichenfolgen handeln.
Datentypen: Char, nchar, varcharoder nvarchar.
Note
Die Funktionen REGEXP_* 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.
flags
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 lautet 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
| Flag | Description |
|---|---|
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) |
Returns
Gibt ein tabellarisches Ergebnis wie folgt zurück:
| Spaltenname | Datentyp | Description |
|---|---|---|
match_id |
bigint | Die Abfolge der übereinstimmenden Wörter. |
start_position |
int | Die Indexposition wird gestartet. |
end_position |
int | Indexposition wird beendet. |
match_value |
Gleicher Typ wie string_expression oder Varchar |
Übereinstimmenden Ausdruck. |
substring_matches |
json | JSON-Dokument zur Beschreibung der Übereinstimmung. |
Plattformunterstützung
Erfordert Datenbankkompatibilitätsebene 170. Um das Kompatibilitätsniveau der Datenbank festzulegen, überprüfen ALTER DATABASE Sie das Kompatibilitätsniveau (Transact-SQL). Die Kompatibilitätsanforderung gilt nicht, wenn die ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS datenbankbezogene Konfiguration aktiviert ist.
- In Azure SQL Managed Instance sind T-SQL-reguläre Ausdrucksfunktionen nur mit der Aktualisierungsrichtlinie SQL Server 2025 oder Always-up-to-Datum verfügbar.
- T-SQL-reguläre Ausdrucksfunktionen sind in Azure SQL-Datenbank, SQL-Datenbank in Fabric und ab SQL Server 2025 verfügbar.
- T-SQL-reguläre Ausdrucksfunktionen sind in SQL Server 2022 oder früheren Versionen nicht verfügbar.
- In Fabric Data Warehouse werden die tabellenwertigen Funktionen
REGEXP_MATCHESund REGEXP_SPLIT_TO_TABLE regulären Ausdrucks nicht unterstützt. T-SQL-Skalarfunktionen für reguläre Ausdruck sind als Vorschaufunktion in Fabric Data Warehouse verfügbar.
Examples
Gibt tabellarische Ergebnisse zurück, die 'Learning #AzureSQL #AzureSQLDB' mit einem # Zeichen beginnen, gefolgt von einem oder mehreren alphanumerischen Zeichen (A-Z, a-z, 0-9) oder Unterstrichen (_).
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}]
Gibt Zeichenfolgen aus ABC dieser Übereinstimmung mit Zeichenfolgen zurück, die mit dem Buchstaben A beginnen, gefolgt von genau zwei Zeichen.
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}]