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
Anmerkung
Als Vorschaufeature unterliegt die in diesem Artikel vorgestellte Technologie ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.
Gibt eine geänderte Quellzeichenfolge, die durch eine Ersetzungszeichenfolge ersetzt wird, wobei das Vorkommen des Musters für reguläre Ausdrücke gefunden wurde. Wenn keine Übereinstimmungen gefunden werden, gibt die Funktion die ursprüngliche Zeichenfolge zurück.
REGEXP_REPLACE
(
string_expression,
pattern_expression [, string_replacement [, start [, occurrence [, 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_COUNT
und 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.
string_replacement
Zeichenfolgenausdruck, der die Ersetzungszeichenfolge für übereinstimmende Teilzeichenfolgen angibt und die Teilzeichenfolgen ersetzt, die mit dem Muster übereinstimmen. Die string_replacement kann von Char-, Varchar-, nchar- und nvarchar-Datentypen sein. Wenn eine leere Zeichenfolge (' '
) angegeben ist, entfernt die Funktion alle übereinstimmenen Muster und gibt die resultierende Zeichenfolge zurück. Die Standardersetzungszeichenfolge ist die leere Zeichenfolge (' '
).
Die string_replacement kann \nenthalten, wobei n 1 bis 9 ist, um anzugeben, dass die Quellunterzeichenfolge, die der n'n'klammerten Gruppe (Unterausdruck) des Musters entspricht, eingefügt werden soll, und sie kann &
enthalten, um anzugeben, dass die Teilzeichenfolge, die dem gesamten Muster entspricht, eingefügt werden soll. Write \ if you need to put a literal backslash in the replacement text.
Zum Beispiel
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
Ertrag:
(123) 456-7890
Wenn die angegebene Angabe \n
string_replacement
größer als die Anzahl der Gruppen in der pattern_expression ist, ignoriert die Funktion den Wert.
Zum Beispiel:
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Ertrag:
(123) ()-xxxx
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 >= 1
werden. Wenn der Startausdruck kleiner als 1
ist, wird ein Fehler zurückgegeben. Wenn der Startausdruck größer als die Länge string_expression ist, gibt die Funktion string_expression zurück. Der Standardwert ist 1
.
Vorkommen
Ein Ausdruck (positive ganze Zahl), der angibt, welches Vorkommen des Musterausdrucks innerhalb der Quellzeichenfolge durchsucht oder ersetzt werden soll. Der Standardwert ist 1
. Sucht nach dem ersten Zeichen des string_expression. Bei einer positiven ganzzahligen Zahl n
sucht sie nach dem nth
ersten Zeichen nach dem ersten Vorkommen des pattern_expression usw.
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
Ausdruck.
Beispiele
Ersetzen Sie alle Vorkommen von a
oder e
durch X
in den Produktnamen.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
Ersetzen Sie das erste Vorkommen von cat
oder dog
durch pet
in den Produktbeschreibungen.
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
Ersetzen der letzten vier Ziffern der Telefonnummern durch Sternchen
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;