Função regexp_extract_all

Aplica-se a:marca de seleção positiva SQL do Databricks verificação marcada como sim Runtime do Databricks

Extrai todas as cadeias de caracteres em str correspondem à regexp expressão e correspondem ao índice de grupo da faixa de opções regex.

Sintaxe

regexp_extract_all(str, regexp [, idx] )

Argumentos

  • str: uma expressão STRING a ser correspondida.
  • regexp: uma expressão STRING com um padrão correspondente.
  • idx: uma expressão de número integral opcional maior ou igual a 0 com o padrão 1.

Retornos

Um ARRAY<STRING>.

A regexp cadeia de caracteres deve ser uma expressão regular. Consulte expressões regulares para a sintaxe com suporte.

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

regexp pode conter vários grupos. idx indica o grupo de regex para extração. Um idx igual a 0 significa uma correspondência de 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 retornar de cada correspondência.

> 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 cada número em uma cadeia de caracteres

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

Extrair cada hashtag

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

Extrair cada correspondência de um padrão sem grupo

Quando o padrão não tiver nenhum grupo de captura, use um idx de 0 para retornar a correspondência inteira.

> 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