Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hoger
Retourneert de eerste subtekenreeks in str die overeenkomsten regexp.
Syntaxis
regexp_substr( str, regexp )
Argumenten
-
str: EenSTRINGexpressie die moet worden vergeleken. -
regexp: EenSTRINGexpressie met een overeenkomend patroon.
Retouren
A STRING.
regexp_substr retourneert de volledige subtekenreeks die regexp overeenkomt met, niet een afzonderlijke capture-groep.
Als u een specifieke capturegroep wilt retourneren, gebruikt u regexp_extract.
Alleen de eerste overeenkomst wordt overwogen. Als u elke overeenkomst wilt retourneren, gebruikt u regexp_extract_all.
De regexp tekenreeks moet een reguliere expressie zijn. Zie Reguliere expressies voor de ondersteunde syntaxis.
Wanneer u letterlijke gegevens gebruikt, gebruikt raw-literal u (r voorvoegsel) om voorverwerking van escape-tekens te voorkomen.
Als str of regexp is NULL, of het patroon niet wordt gevonden, is NULLhet resultaat .
Algemene foutvoorwaarden
Voorbeelden
Een van de verschillende alternatieven vergelijken
Het patroon Ste(v\|ph)en komt overeen met Steven of Stephen. De functie retourneert de eerste overeenkomst.
> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
Steven
Het eerste getal uit een tekenreeks extraheren
Gebruik een letterlijke letterlijke onbewerkte gegevens die worden doorgegeven aan de regex-engine \d zonder de backslash te verdubbelen.
> SELECT regexp_substr('item 42 costs $19', r'\d+');
42
Niet hoofdlettergevoelig vergelijken
Gebruik de (?i) inlinevlag om hoofdletters en kleine letters te negeren.
> SELECT regexp_substr('Error: disk full', r'(?i)error');
Error
Een e-mailadres extraheren
> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
alice@example.com
Pak de eerste hashtag uit
regexp_substr retourneert alleen de eerste overeenkomst. Als u elke overeenkomst wilt retourneren, gebruikt u regexp_extract_all.
> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
#data
Geen overeenkomst retourneert NULL
In tegenstelling tot regexp_extract, die een lege tekenreeks retourneertNULL, regexp_substr wordt geretourneerd wanneer het patroon niet wordt gevonden.
> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
NULL
NULL invoer retourneert NULL
> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
NULL
> SELECT regexp_substr('Mary had a little lamb', NULL);
NULL
Ongeldig regex-patroon
> SELECT regexp_substr('abc', '[invalid');
Error: INVALID_PARAMETER_VALUE.PATTERN