regexp_extract_all-functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Haalt alle tekenreeksen in str die overeenkomen met de regexp expressie en correspondeert met de regex groepsindex.

Syntaxis

regexp_extract_all(str, regexp [, idx] )

Argumenten

  • str: Een STRING expressie die moet worden vergeleken.
  • regexp: Een STRING expressie met een overeenkomend patroon.
  • idx: Een optionele integrale getalexpressie groter of gelijk aan 0 met standaard 1.

Retouren

Een ARRAY<STRING>.

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.

regexp kan meerdere groepen bevatten. idx geeft aan welke regex-groep moet worden geëxtraheerd. Een idx van 0 betekent dat deze overeenkomt met de volledige reguliere expressie.

Algemene foutvoorwaarden

Voorbeelden

Een capture-groep uit elke overeenkomst extraheren

idx selecteert welke capture-groep moet worden geretourneerd uit elke overeenkomst.

> 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]

Elk getal in een tekenreeks extraheren

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

Elke hashtag extraheren

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

Pak elke overeenkomst uit van een patroon met een groep minder

Wanneer het patroon geen capturegroep heeft, gebruikt u een idx van 0 om de hele overeenkomst te retourneren.

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

Ongeldig regex-patroon

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