REGEXP_SUBSTR_ALL¶
Retorna um ARRAY que contém todas as subcadeias de caracteres que correspondem a uma expressão regular dentro de uma cadeia de caracteres.
- Aliases:
REGEXP_EXTRACT_ALL
Sintaxe¶
Argumentos¶
Obrigatório:
subjectA cadeia de caracteres a ser procurada por correspondências.
patternPadrão a atender.
Para diretrizes sobre como especificar padrões, consulte Funções de cadeia de caracteres (expressões regulares).
Opcional:
positionNúmero de caracteres a partir do início da cadeia de caracteres onde a função inicia a busca por correspondências. O valor deve ser um número inteiro positivo.
Padrão:
1(a busca por uma correspondência começa no primeiro caractere à esquerda)occurrenceEspecifica a primeira ocorrência do padrão a partir do qual se começa a retornar as correspondências.
A função salta as primeiras
occurrence - 1correspondências. Por exemplo, se houver 5 correspondências e você especificar3para o argumentooccurrence, a função ignorará as duas primeiras correspondências e retornará a terceira, quarta e quinta correspondências.Padrão:
1regex_parametersCadeia de caracteres de um ou mais caracteres que especifica os parâmetros usados para a busca de correspondências. Valores com suporte:
Parâmetro
Descrição
cCorrespondência com distinção entre maiúsculas e minúsculas
iCorrespondência sem distinção entre maiúsculas e minúsculas
mModo multilinha
eExtração de subcorrespondências
sO caractere curinga POSIX do modo de linha única
.corresponde a\nPadrão:
cPara obter mais informações, consulte Especificação dos parâmetros para a expressão regular.
Nota
Por padrão, REGEXP_SUBSTR_ALL retorna toda a parte correspondente do assunto. Entretanto, se o parâmetro
efor especificado, REGEXP_SUBSTR_ALL retorna a parte do assunto que corresponde ao primeiro grupo no padrão. Seefor especificado, mas umgroup_numtambém não for especificado, então ogroup_numpadrão é 1 (o primeiro grupo). Se não houver subexpressão no padrão, REGEXP_SUBSTR_ALL se comportará como seenão estivesse definido. Para exemplos que usame, consulte Exemplos neste tópico.group_numEspecifica qual grupo extrair. Os grupos são especificados usando parênteses na expressão regular.
Se um
group_numfor especificado, o Snowflake permite a extração mesmo que a opção'e'também não tenha sido especificada. O'e'está implícito.O Snowflake oferece suporte a até 1.024 grupos.
Para exemplos que usam
group_num, consulte Exemplos neste tópico.
Retornos¶
A função retorna um valor do tipo ARRAY. A matriz contém um elemento para cada substring correspondente.
A função retorna uma matriz vazia se nenhuma correspondência for encontrada.
A função retorna NULL nos seguintes casos:
Qualquer argumento é NULL.
Você especifica
group_nume o padrão não especifica um agrupamento com esse número. Por exemplo, se o padrão especificar apenas um grupo (por exemplo,a(b)c) e você usar2comogroup_num, a função retornará NULL.
Notas de uso¶
Para informações adicionais sobre o uso de expressões regulares, consulte Funções de cadeia de caracteres (expressões regulares).
Detalhes do agrupamento¶
Arguments with collation specifications currently aren’t supported.
Exemplos¶
O padrão no exemplo a seguir corresponde a um “a” minúsculo seguido por um dígito. O exemplo retorna um ARRAY que contém todas as correspondências:
O exemplo seguinte começa a encontrar correspondências a partir do segundo caractere da cadeia de caracteres (2):
O exemplo a seguir começa a retornar correspondências a partir da terceira ocorrência do padrão na cadeia de caracteres (3):
O exemplo a seguir realiza uma correspondência que não diferencia maiúsculas e minúsculas (i):
O exemplo a seguir realiza uma correspondência que não diferencia maiúsculas e minúsculas e retorna a parte da cadeia de caracteres que corresponde ao primeiro grupo (ie):
O exemplo a seguir demonstra que a função retorna uma matriz vazia quando nenhuma correspondência é encontrada:
Este exemplo mostra como recuperar cada segunda palavra em uma cadeia de caracteres da primeira, segunda e terceira correspondências de um padrão de duas palavras em que a primeira palavra é A.
Primeiro, crie uma tabela e insira os dados:
Executar a consulta:
Este exemplo mostra como recuperar o primeiro, segundo e terceiro grupos dentro de cada ocorrência do padrão em uma cadeia de caracteres. Nesse caso, os valores retornados são cada letra individual de cada palavra correspondente em cada grupo.