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
Gibt die Anfangs- oder Endposition der übereinstimmenden Teilzeichenfolge abhängig vom Wert des arguments return_option zurück.
REGEXP_INSTR
(
string_expression,
pattern_expression [ , start [ , occurrence [ , return_option [ , flags [ , group ] ] ] ] ]
)
Note
Reguläre Ausdrücke sind in azure SQL Managed Instance mit der SQL Server 2025- oder Always-up-to-Datumsaktualisierungsrichtlinie verfügbar.
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 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.
start
Gibt die Startposition für die Suche innerhalb der Suchzeichenfolge an. Optional. 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, wird ein Fehler zurückgegeben. Wenn der Startausdruck größer als die Länge string_expression ist, gibt die Funktion zurück 0. Der Standardwert ist 1.
occurrence
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 nsucht sie nach dem nth ersten Zeichen nach dem ersten Vorkommen des pattern_expression usw.
return_option
Gibt an, ob die Anfangs- oder Endposition der übereinstimmenden Teilzeichenfolge zurückgegeben werden soll. Verwenden Sie 0 für den Anfang und 1 für das Ende. Der Standardwert ist 0. Die Abfrage gibt einen Fehler für einen anderen Wert zurück.
flag
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
| 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) |
group
Gibt an, welche Erfassungsgruppe (subexpression) eines pattern_expression die Position innerhalb string_expression zurückgibt. Die Gruppe ist ein Musterfragment, das in Klammern eingeschlossen ist und geschachtelt werden kann. Die Gruppen werden in der Reihenfolge nummeriert, in der ihre linken Klammern im Muster angezeigt werden. Der Wert ist eine ganze Zahl und muss >= 0 nicht größer sein als die Anzahl der Gruppen in der pattern_expression. Der Standardwert ist 0, der angibt, dass die Position auf der Zeichenfolge basiert, die dem gesamten pattern_expression entspricht.
Wenn der Wert größer als die Anzahl der Gruppen in pattern_expression ist, gibt die Funktion zurück 0.
Rückgabewert
Integer.
Examples
Suchen Sie die Position der ersten Teilzeichenfolge, die nur Ziffern in der spalte PRODUCT_DESCRIPTION enthält.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;
Suchen Sie die Position des dritten Vorkommens des Buchstabens a (Groß-/Kleinschreibung) in der spalte PRODUCT_NAME.
SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;
Suchen Sie die Position des Endes der ersten Teilzeichenfolge, die mit t beginnt, und endet mit e (Groß-/Kleinschreibung) in der spalte PRODUCT_DESCRIPTION.
SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;