Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Função
Aplica-se a:
Databricks SQL
Databricks Runtime 11.3 LTS e superior
Retorna a primeira substring que str corresponde a regexp.
Sintaxe
regexp_substr( str, regexp )
Argumentos
-
str: UmaSTRINGexpressão a ser correspondida. -
regexp: UmaSTRINGexpressão com um padrão correspondente.
Devoluções
Um STRING.
regexp_substr devolve toda a subcadeia que regexp corresponde, não um grupo individual de captura.
Para devolver um grupo de captura específico, use regexp_extract.
Apenas o primeiro jogo é considerado. Para devolver todos os jogos, usa regexp_extract_all.
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.
Se str ou regexp for NULL, ou o padrão não for encontrado, o resultado é NULL.
Condições de erro comuns
Exemplos
Escolha uma das várias alternativas
O padrão Ste(v\|ph)en corresponde a ou StephenSteven a . A função devolve a primeira correspondência.
> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
Steven
Extrair o primeiro número de uma sequência
Usa um literal bruto para que isso \d seja passado para o motor regex sem duplicar a barra diagonal.
> SELECT regexp_substr('item 42 costs $19', r'\d+');
42
Combinar de forma insensível ao caso
Usa a (?i) bandeira inline para ignorar o caso.
> SELECT regexp_substr('Error: disk full', r'(?i)error');
Error
Extrair um endereço de email
> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
alice@example.com
Extrair a primeira hashtag
regexp_substr devolve apenas o primeiro jogo. Para devolver todos os jogos, usa regexp_extract_all.
> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
#data
Não há retornos de jogos NULL
Ao contrário de regexp_extract, que devolve uma cadeia vazia, retorna regexp_substrNULL quando o padrão não é encontrado.
> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
NULL
NULL Retornos de entrada NULL
> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
NULL
> SELECT regexp_substr('Mary had a little lamb', NULL);
NULL
Padrão regex inválido
> SELECT regexp_substr('abc', '[invalid');
Error: INVALID_PARAMETER_VALUE.PATTERN