Função regexp_extract_all

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime

Extrai todas as cadeias de caracteres que correspondem à str expressão e correspondem regexp ao regex índice do grupo.

Sintaxe

regexp_extract_all(str, regexp [, idx] )

Argumentos

  • str: Uma STRING expressão a ser correspondida.
  • regexp: Uma STRING expressão com um padrão correspondente.
  • idx: Uma expressão numérica integral opcional maior ou igual a 0 com o padrão 1.

Devoluções

Um ARRAY<STRING>.

A regexp cadeia deve ser uma expressão regular. Ver Expressões regulares para a sintaxe suportada.

Ao usar literais, use raw-literal (r prefixo) para evitar o pré-processamento de caracteres de escape.

regexp pode conter vários grupos. idx indica qual grupo regex extrair. Um idx de 0 significa corresponder a toda a expressão regular.

Condições de erro comuns

Exemplos

Extrair um grupo de captura de cada correspondência

idx seleciona qual grupo de captura regressar de cada partida.

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

Extrair todos os números de uma cadeia

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

Extrair todas as hashtags

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

Extrair todas as correspondências de um padrão sem grupo

Quando o padrão não tem grupo de captura, use um idx de 0 para devolver toda a partida.

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

Padrão regex inválido

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