Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função
Aplica-se a:
SQL do Databricks
Databricks Runtime 11.3 LTS e versões posteriores
Retorna a primeira substring em str que combine regexp.
Sintaxe
regexp_substr( str, regexp )
Argumentos
-
str: uma expressãoSTRINGa ser correspondida. -
regexp: uma expressãoSTRINGcom um padrão correspondente.
Retornos
Um STRING.
regexp_substr retorna toda a subcadeia de caracteres que regexp corresponde, não um grupo de captura individual.
Para retornar um grupo de captura específico, use regexp_extract.
Somente a primeira correspondência é considerada. Para retornar todas as correspondências, use regexp_extract_all.
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.
Se str ou regexp for NULL, ou o padrão não for encontrado, o resultado será NULL.
Condições de erro comuns
Exemplos
Corresponder a uma das várias alternativas
O padrão Ste(v\|ph)en corresponde a um Steven ou Stephen. A função retorna 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 cadeia de caracteres
Use um literal bruto para que \d seja passado para o mecanismo regex sem dobrar a barra invertida.
> SELECT regexp_substr('item 42 costs $19', r'\d+');
42
Corresponder sem diferenciar maiúsculas de minúsculas
Use o (?i) sinalizador embutido para ignorar maiúsculas e minúsculas.
> 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 retorna apenas a primeira correspondência. Para retornar todas as correspondências, use regexp_extract_all.
> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
#data
Nenhuma correspondência retorna NULL
Ao contrário de regexp_extract, que retorna uma cadeia de caracteres vazia, regexp_substr retorna NULL quando o padrão não é encontrado.
> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
NULL
NULL retorno 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