Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen
Gäller för:
Databricks SQL
Databricks Runtime 11.3 LTS och senare
Returnerar den första delsträngen i str som matchar regexp.
Syntax
regexp_substr( str, regexp )
Argument
-
str: EttSTRINGuttryck som ska matchas. -
regexp: EttSTRINGuttryck med ett matchande mönster.
Returer
En STRING.
regexp_substr returnerar hela delsträngen som regexp matchar, inte en enskild avbildningsgrupp.
Om du vill returnera en specifik avbildningsgrupp använder du regexp_extract.
Endast den första matchningen beaktas. Om du vill returnera varje matchning använder du regexp_extract_all.
Strängen regexp måste vara ett reguljärt uttryck. Se Reguljära uttryck för syntaxen som stöds.
När du använder literaler, använd raw-literal (r prefix) för att undvika förbehandling av escape-tecken.
Om str eller regexp är NULL, eller om mönstret inte hittas blir NULLresultatet .
Vanliga felvillkor
Exempel
Matcha ett av flera alternativ
Mönstret Ste(v\|ph)en matchar antingen Steven eller Stephen. Funktionen returnerar den första matchningen.
> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
Steven
Extrahera det första talet från en sträng
Använd en råliteral så att \d den skickas till regex-motorn utan att dubblera omvänt snedstreck.
> SELECT regexp_substr('item 42 costs $19', r'\d+');
42
Matcha skiftlägesokänsligt
Använd infogad (?i) flagga för att ignorera skiftläge.
> SELECT regexp_substr('Error: disk full', r'(?i)error');
Error
Extrahera en e-postadress
> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
alice@example.com
Extrahera den första hashtaggen
regexp_substr returnerar endast den första matchningen. Om du vill returnera varje matchning använder du regexp_extract_all.
> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
#data
Ingen matchning returnerar NULL
Till skillnad från regexp_extract, som returnerar en tom sträng, regexp_substr returneras NULL när mönstret inte hittas.
> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
NULL
NULL indata returnerar NULL
> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
NULL
> SELECT regexp_substr('Mary had a little lamb', NULL);
NULL
Ogiltigt regexmönster
> SELECT regexp_substr('abc', '[invalid');
Error: INVALID_PARAMETER_VALUE.PATTERN