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:
Databricks SQL
Databricks Runtime 11.3 LTS und höher
Gibt den ersten Substring in str zurück, die mit regexp übereinstimmt.
Syntax
regexp_substr( str, regexp )
Argumente
-
str: EinSTRING-Ausdruck, der abgeglichen werden soll. -
regexp: EinSTRING-Ausdruck mit einem übereinstimmenden Muster.
Gibt zurück
Ein STRING.
regexp_substr gibt die gesamte Teilzeichenfolge zurück, die regexp nicht mit einer einzelnen Erfassungsgruppe übereinstimmt.
Verwenden Sie regexp_extract, um eine bestimmte Erfassungsgruppe zurückzugeben.
Nur die erste Übereinstimmung wird berücksichtigt. Verwenden Sie regexp_extract_all, um jede Übereinstimmung zurückzugeben.
Die regexp Zeichenfolge muss ein regulärer Ausdruck sein. Siehe reguläre Ausdrücke für die unterstützte Syntax.
Verwenden Sie beim Einsatz von Literalen raw-literal (Präfixr), um die Vorabverarbeitung von Escapezeichen zu vermeiden.
Wenn str oder regexp ist NULL, oder das Muster nicht gefunden wird, lautet NULLdas Ergebnis .
Häufige Fehlerbedingungen
Beispiele
Übereinstimmung mit einer von mehreren Alternativen
Das Muster Ste(v\|ph)en entspricht entweder Steven oder Stephen. Die Funktion gibt die erste Übereinstimmung zurück.
> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
Steven
Extrahieren der ersten Zahl aus einer Zeichenfolge
Verwenden Sie ein unformatiertes Literal, \d sodass sie an das Regex-Modul übergeben wird, ohne den umgekehrten Schrägstrich zu verdoppeln.
> SELECT regexp_substr('item 42 costs $19', r'\d+');
42
Groß-/Kleinschreibung beachten
Verwenden Sie die Inlinekennzeichnung, um die (?i) Groß-/Kleinschreibung zu ignorieren.
> SELECT regexp_substr('Error: disk full', r'(?i)error');
Error
Extrahieren einer E-Mail-Adresse
> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
alice@example.com
Extrahieren des ersten Hashtags
regexp_substr gibt nur die erste Übereinstimmung zurück. Verwenden Sie regexp_extract_all, um jede Übereinstimmung zurückzugeben.
> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
#data
Keine Übereinstimmung zurückgegeben NULL
Im Gegensatz zu regexp_extract, die eine leere Zeichenfolge zurückgibt, wird zurückgegebenNULL, regexp_substr wenn das Muster nicht gefunden wird.
> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
NULL
NULL Eingaberückkehrer NULL
> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
NULL
> SELECT regexp_substr('Mary had a little lamb', NULL);
NULL
Ungültiges regex-Muster
> SELECT regexp_substr('abc', '[invalid');
Error: INVALID_PARAMETER_VALUE.PATTERN