Funkcja regexp_extract_all

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Wyodrębnia wszystkie ciągi, które str pasują regexp do wyrażenia i odpowiadają indeksowi regex grupy.

Składnia

regexp_extract_all(str, regexp [, idx] )

Argumenty

  • str STRING: Wyrażenie, które ma być dopasowane.
  • regexp STRING: wyrażenie z pasującym wzorcem.
  • idx: opcjonalne wyrażenie liczby całkowitej większej lub równej 0 z wartością domyślną 1.

Zwraca

Jeden ARRAY<STRING>.

Ciąg regexp musi być wyrażeniem regularnym. Zobacz Wyrażenia regularne , aby uzyskać obsługiwaną składnię.

W przypadku używania literałów użyj raw-literal (r prefiksu), aby uniknąć wstępnego przetwarzania znaków ucieczki.

regexp może zawierać wiele grup. idx wskazuje, która grupa wyrażeń regularnych ma być wyodrębniana. Wartość idx 0 oznacza dopasowanie całego wyrażenia regularnego.

Typowe warunki błędów

Przykłady

Wyodrębnianie grupy przechwytywania z każdego dopasowania

idx wybiera grupę przechwytywania, która ma być zwracana z każdego dopasowania.

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

Wyodrębnianie każdej liczby w ciągu

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

Wyodrębnij każdy hashtag

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

Wyodrębnianie każdego dopasowania wzorca bez grupowania

Jeśli wzorzec nie ma grupy przechwytywania, użyj wartości idx 0, aby zwrócić całe dopasowanie.

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

Nieprawidłowy wzorzec wyrażenia regularnego

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