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) Vorschau der
Azure SQL-Datenbank
azureSQL Managed Instance
SQL SQL-Datenbank in Microsoft Fabric
In diesem Artikel werden reguläre Ausdrücke für SQL Server vorgestellt.
Hinweis
Als Previewfunktion unterliegt die in diesem Artikel vorgestellte Technologie den zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen.
Ein regulärer Ausdruck oder regex ist eine Abfolge von Zeichen, die ein Suchmuster für Text definieren. Regex wird häufig für eine Vielzahl von Aufgaben verwendet, einschließlich Musterabgleich, Datenüberprüfung, Datentransformation und Abfragen. Es bietet eine flexible und effiziente Möglichkeit zum Suchen, Bearbeiten und Verarbeiten komplexer Datenvorgänge.
Diese Implementierung des regulären Ausdrucks basiert auf der RE2-Bibliothek für reguläre Ausdrücke. Weitere Informationen finden Sie unter RE2 Regular Expression Syntax.
Beispiel:
Funktion | BESCHREIBUNG |
---|---|
REGEXP_LIKE | Gibt einen booleschen Wert zurück, der angibt, ob die Texteingabe mit dem regex-Muster übereinstimmt. |
REGEXP_REPLACE | Gibt eine geänderte Quellzeichenfolge, die durch eine Ersetzungszeichenfolge ersetzt wird, wobei das Vorkommen des regex-Musters gefunden wurde. |
REGEXP_SUBSTR | Extrahiert Teile einer Zeichenfolge basierend auf einem Muster für reguläre Ausdrücke. Gibt das Nth-Vorkommen einer Teilzeichenfolge zurück, die dem regex-Muster entspricht. |
REGEXP_INSTR | Gibt die Anfangs- oder Endposition der übereinstimmenden Teilzeichenfolge abhängig von der angegebenen Option zurück. |
REGEXP_COUNT | Gibt die Anzahl der Male zurück, mit denen regex-Muster in einer Zeichenfolge auftritt. |
REGEXP_MATCHES | Gibt eine Tabelle mit erfassten Teilzeichenfolgen zurück, die einem Muster für reguläre Ausdrücke mit einer Zeichenfolge entsprechen. Wenn keine Übereinstimmung gefunden wird, gibt die Funktion keine Zeile zurück. |
REGEXP_SPLIT_TO_TABLE | Gibt eine Tabelle mit geteilten Zeichenfolgen zurück, die durch das Regex-Muster getrennt ist. Wenn keine Übereinstimmung mit dem Muster vorhanden ist, gibt die Funktion die Zeichenfolge zurück. |
Reguläre Ausdrücke können aus Literalzeichen und Metazeichen bestehen, die besondere Bedeutungen und Funktionen aufweisen.
Ein einfacher regulärer Ausdruck ist ein einzelnes Literalzeichen. Zeichen entsprechen sich selbst, mit Ausnahme der Metazeichen. Metazeichen umfassen *
, , +
, ?
, (
, , )
oder |
. Um einem Metazeichen zu entsprechen, escape es mit einem umgekehrten Schrägstrich. Beispielsweise entspricht \*
dem Literal-Sternchen (*
).
Akzeptierte Zeichen für reguläre Ausdrücke
Einzelzeichenausdrücke
Arten von Ausdrücken, die aus einem einzelnen Zeichen bestehen | Beispiele |
---|---|
ein beliebiges Zeichen, das möglicherweise ein Zeilenumbruch einschließt (s = wahr) | . |
Zeichenklasse | [xyz] |
negierte Zeichenklasse | [^xyz] |
Perl-Zeichenklassen | \d |
negierte Perl-Zeichenklasse | \D |
ASCII-Zeichenklassen | [[:alpha:]] |
negierte ASCII-Zeichenklasse | [[:^alpha:]] |
Unicode-Zeichenklasse (einbuchstabiger Name) | \pN |
Unicode-Zeichenklasse | \p{Greek} |
negierte Unicode-Zeichenklasse (einbuchstabiger Name) | \PN |
negierte Unicode-Zeichenklasse | \P{Greek} |
Perl-Zeichenklassen
In der folgenden Tabelle sind derzeit unterstützte Perl-Zeichenklassen aufgeführt.
Perl-Zeichenklassen (alle nur in ASCII-Format) | BESCHREIBUNG |
---|---|
\d |
Ziffern ( [0-9] ) |
\D |
keine Ziffern ( [^0-9] ) |
\s |
Leerzeichen ( [\t\n\f\r ] ) |
\S |
keine Leerzeichen ( [^\t\n\f\r ] ) |
\w |
Wortzeichen ( [0-9A-Za-z_] ) |
\W |
keine Wortzeichen ( [^0-9A-Za-z_] ) |
ASCII-Zeichenklassen
In der folgenden Tabelle sind derzeit unterstützte ASCII-Zeichenklassen aufgeführt.
ASCII-Zeichenklassen | BESCHREIBUNG |
---|---|
[[:alnum:]] |
alphanumerisch ( [0-9A-Za-z] ) |
[[:alpha:]] |
alphabetisch ( [A-Za-z] ) |
[[:ascii:]] |
ASCII ( [\x00-\x7F] ) |
[[:blank:]] |
leer ( [\t ] ) |
[[:cntrl:]] |
Steuerung ( [\x00-\x1F\x7F] ) |
[[:digit:]] |
Ziffern ( [0-9] ) |
[[:graph:]] |
grafische ( [!-~] oder [A-Za-z0-9!“#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~] ) |
[[:lower:]] |
Kleinbuchstabe ( [a-z] ) |
[[:print:]] |
druckbar ( [ -~] oder [ [:graph:]] ) |
[[:punct:]] |
Interpunktion ( [!-/:-@[-\``{-~] ) |
[[:space:]] |
Leerzeichen ( [\t\n\v\f\r ] ) |
[[:upper:]] |
Großbuchstabe ( [A-Z] ) |
[[:word:]] |
Wortzeichen ( [0-9A-Za-z_] ) |
[[:xdigit:]] |
Hexziffer ( [0-9A-Fa-f] ) |
Literalzeichen
- Buchstaben
- Zahlen
- Symbole
Metazeichen
-
*
entspricht null oder mehr Vorkommen des vorhergehenden Zeichens. -
^
entspricht dem Anfang einer Zeile.
Gruppierungen
Gruppieren und Erfassen von Teilen des Musters mit:
- Klammern
( )
- Eckige Klammern
[ ]
- Geschweifte Klammern
{ }
Flaggen
Verwenden Sie Flags, um das Ausdrucksverhalten zu ändern. Beispiel:
i
m
s
c
Diese Implementierung unterstützt den POSIX-Standard regulärer Ausdrücke basierend auf RE2 und bietet Unterstützung für die PCRE/PCRE2-Variante der regulären Ausdrückesyntax, die mit den meisten modernen Engines und Tools für reguläre Ausdrücke kompatibel ist. Es gibt verschiedene Varianten regulärer Ausdrücke, z. B. POSIX, ANSI, Perl und PCRE, die unterschiedliche Syntax und Features aufweisen.
Anforderungen
- Ein SQL-Clienttool, z. B. Azure Data Studio, SQL Server Management Studio oder Visual Studio Code.
- Grundlegende Kenntnisse der SQL-Syntax und -Abfragen.
- Grundlegendes Verständnis der Syntax und Konzepte regulärer Ausdrücke.
Häufig gestellte Fragen
Welchen Einfluss hat die Verwendung von Regex auf die Performance?
Regex-Abfragen können sich je nach Komplexität des Regex-Musters, der Größe der Textdaten und der Anzahl der beteiligten Zeilen auf die Leistung auswirken. Sie können den Ausführungsplan und die Statistik verwenden, um die Leistung Ihrer regex-Abfragen zu überwachen und zu optimieren.
Bekannte Probleme, Verhaltensweisen und Einschränkungen
Dies sind die Elemente, die derzeit in dieser Vorschau nicht unterstützt werden:
- LOB-Datentypen (varchar(max) oder nvarchar(max)) für
string_expressions
- Reguläre Ausdrucksfunktionen werden für speicheroptimierte OLTP-Tabellen nicht unterstützt.