Funktionen regexp_extract_all

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Extraherar alla strängar i str som matchar regexp uttrycket och motsvarar regex gruppindexet.

Syntax

regexp_extract_all(str, regexp [, idx] )

Argument

  • str: Ett STRING uttryck som ska matchas.
  • regexp: Ett STRING uttryck med ett matchande mönster.
  • idx: Ett valfritt integralnummeruttryck större eller lika med 0 med standardvärdet 1.

Returer

En ARRAY<STRING>.

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änder du raw-literal (r prefix) för att undvika förbearbetning av escape-tecken.

regexp kan innehålla flera grupper. idx anger vilken regexgrupp som ska extraheras. Ett idx av 0 innebär att matcha hela reguljära uttryck.

Vanliga felvillkor

Exempel

Extrahera en avbildningsgrupp från varje matchning

idx väljer vilken avbildningsgrupp som ska returneras från varje matchning.

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 1);
 [100, 300]

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 2);
 [200, 400]

Extrahera varje tal i en sträng

> SELECT regexp_extract_all('There are 10 cats, 20 dogs, and 30 birds', r'(\d+)', 1);
 [10, 20, 30]

Extrahera varje hashtagg

> SELECT regexp_extract_all('Posts tagged #data #ai #sql', r'#(\w+)', 1);
 [data, ai, sql]

Extrahera varje matchning i ett grupplöst mönster

När mönstret inte har någon avbildningsgrupp använder du idx 0 för att returnera hela matchningen.

> SELECT regexp_extract_all('Send to alice@example.com or bob@example.org', r'\w+@\w+\.\w+', 0);
 [alice@example.com, bob@example.org]

Ogiltigt regexmönster

> SELECT regexp_extract_all('abc', '[invalid', 0);
  Error: INVALID_PARAMETER_VALUE.PATTERN