ExtractRegExGroup() extrai texto de uma expressão de string de entrada usando o padrão de expressão regular composta especificado. Ao usar a função, especifique o grupo a ser usado na regex composta. A função retorna um valor nulo se nenhuma correspondência for encontrada.
Se você usar a função ExtractRegExGroup() em uma instrução LOAD, e field_no for omitido, a função retornará vários registros. Se vários campos forem carregados usando ExtractRegExGroup(), os produtos cartesianos de todas as combinações serão criados.
Essa função executa operações regex que diferenciam maiúsculas de minúsculas. Como alternativa, você pode usar a variante ExtractRegExGroupI() para realizar operações de regex sem distinção entre maiúsculas e minúsculas.
Sintaxe:
ExtractRegExGroup
(text, regex, group [, field_no])
Tipo de dados de retorno: caractere
Argumentos
Argumento
Descrição
text
Expressão de string que contém o texto a ser extraído no valor de retorno.
regex
A expressão regular a ser usada para extrair o texto.
group
O número do grupo, no caso de uma expressão regular composta.
Se a expressão regular contiver apenas um grupo, use a função ExtractRegEx() em vez disso. Como alternativa, use ExtractRegExGroup() com um valor para group de 0.
Você pode especificar um valor negativo em group para pesquisar correspondências da direita para a esquerda.
field_no
O número da correspondência a ser extraída. Isso é útil quando várias correspondências para a expressão regular podem ser encontradas no texto. Por exemplo, especifique um valor de 4 para extrair a quarta correspondência.
Este é um argumento opcional. O padrão é 1 se não for especificado.
Retorna 456 (segundo grupo da segunda correspondência).
Quando usar
Você pode usar Extract RegEx() para extrair informações que deseja isolar de dados que também podem conter outras informações (por exemplo, texto livre ou strings JSON). Por exemplo:
Extraia endereços de e-mail, números de telefone, números de conta e outras informações do texto.
Extraia valores numéricos do texto (por exemplo, moeda).
Padronize a formatação de dados numéricos ou de texto.
Exemplo 1 – script de carregamento para analisar códigos de transação
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Uma tabela chamada Transactions, que contém informações sobre transações. Certos detalhes são capturados com códigos de transação usando a seguinte sintaxe:
Ano da transação-Fonte da transação (ou seja, compra on-line ou na loja) -Centro de distribuição associado
A criação de vários campos novos para extrair cada detalhe, cada um reutilizando a mesma expressão regular composta.
Nossos requisitos:
O ano pode ser qualquer combinação de quatro números.
Os valores ONLINE e INSTORE são os únicos valores aceitáveis para a fonte da transação.
O centro de distribuição precisa ter exatamente cinco números.
Script de carregamento
Transactions:
Load
recno() as RecordID,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',0) as TransactionCode_Unparsed,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',1) as TransactionYear,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',2) as TransactionSource,
ExtractRegExGroup(TransactionCode,'([0-9]{4})-(ONLINE|INSTORE)-([0-9]{5})',3) as TransactionDC,
* Inline `
TransactionCode, Category
2025-ONLINE-60019, Product A
2024-INSTORE-60020, Product B
2025-ONLINE-60018, Product C
2024-ONLINE-60020, Product A
2025-INSTORE-60019, Product B
2025-ONLINE-60017, Product D
`;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
Tabela de resultados
RecordID
TransactionCode
TransactionCode_Unparsed
TransactionYear
TransactionSource
TransactionDC
1
2025-ONLINE-60019
2025-ONLINE-60019
2025
ONLINE
60019
2
2024-INSTORE-60020
2024-INSTORE-60020
2024
INSTORE
60020
3
2025-ONLINE-60018
2025-ONLINE-60018
2025
ONLINE
60018
4
2024-ONLINE-60020
2024-ONLINE-60020
2024
ONLINE
60020
5
2025-INSTORE-60019
2025-INSTORE-60019
2025
INSTORE
60019
6
2025-ONLINE-60017
2025-ONLINE-60017
2025
ONLINE
60017
Esses resultados destacam como o argumento group permite reutilizar uma única regex para várias operações. O campo TransactionCode_Unparsed, que usa um valor para group de 0, não fornece nenhum valor adicional nesse caso, mas é mostrado aqui com o objetivo de demonstrar a função.
Exemplo 2 – script de carregamento para extrair informações de contato comercial
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Uma tabela chamada BusinessContactInfo, que contém informações sobre empresas que foram encontradas no site de cada empresa.
ContactInfo é um campo que contém texto livre, incluindo endereços de e-mail e números de telefone da empresa.
A criação de vários campos novos para extrair cada detalhe, cada um reutilizando a mesma expressão regular composta.
Nossos requisitos:
Os endereços de e-mail devem atender a um conjunto específico de requisitos e sintaxe.
Números de telefone devem ser números de telefone da NANP com 10 dígitos. Queremos permitir que o código de área seja colocado entre colchetes e permitir espaços em branco e hifens em determinados pontos.
Script de carregamento
BusinessContactInfo:
Load
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',1,1) as CompanyEmail,
ExtractRegExGroupI(ContactInfo, '([a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']+@[a-zA-Z0-9!#$%^&*-_+=~{|}\/.'']{1,50}\.[a-zA-Z0-9!#$%^&*\-_+=~{|}\/.'']{1,50})|(\({0,1}[0-9]{3}\){0,1}[ -]*[0-9]{3}[ -]*[0-9]{4})',2,2) as CompanyPhoneNum,
* Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
CompanyName
CompanyEmail
CompanyPhoneNum
Tabela de resultados
CompanyName
CompanyEmail
CompanyPhoneNum
Company A
Company1@example.com
(123) 456-7890
Company B
company2@test.com
0123456790
Company C
company3@placeholder.com
234-567-8901
A mesma expressão composta regular é reutilizada para recuperar informações diferentes. O argumento group especifica qual dos dois grupos da expressão regular deve ser pesquisado e o argumento field_no especifica qual correspondência geral (em toda a string) queremos encontrar.
A variante ExtractRegEGroupxI() da função garante pesquisas sem distinção entre maiúsculas e minúsculas.
Exemplo 3 – script de carregamento para extrair componentes de códigos ISBN
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
A criação de uma variável, ISBN_RegEx, para armazenar a expressão regular que queremos usar em todas as extrações.
Um conjunto de códigos ISBN para livros que uma livraria deseja encomendar de vários fornecedores.
Precisamos extrair o seguinte de cada código ISBN:
EAN
Grupo
Registrante
Publicação
Checksum
Script de carregamento
SET ISBN_RegEx = 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})';
ISBN:
LOAD Supplier,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',1) AS EAN,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',2) AS Group,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',3) AS Registrant,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',4) AS Publication,
ExtractRegExGroup(Books,'$(ISBN_RegEx)',5) AS Checksum;
// Split the ISBN with the Group function in a preceding load to avoid generating a cartesian product
LOAD *,
ExtractRegEx(SupplierBooks, '$(ISBN_RegEx)') AS Books
INLINE [
Supplier, SupplierBooks
Supplier 1, ISBN 123-3-1234-1234-0 ISBN 012-2-0123-0123-4 ISBN 000-1-0123-0123-2 ISBN 234-5-2345-2345-1 ISBN 555-2-5555-5555-3 ISBN 222-4-2222-2222-2
Supplier 2, ISBN 000-0-3333-3333-3 ISBN 333-3-3333-3333-3 ISBN 555-1-5151-5151-3 ISBN 232-1-2323-2323-1 ISBN 008-0-7777-7777-3 ISBN 888-0-9999-0000-0
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
Supplier
EAN
Group
Registrant
Publication
Checksum
Tabela de resultados
Supplier
EAN
Group
Registrant
Publication
Checksum
Supplier 1
000
1
0123
0123
2
Supplier 1
012
2
0123
0123
4
Supplier 1
123
3
1234
1234
0
Supplier 1
222
4
2222
2222
2
Supplier 1
234
5
2345
2345
1
Supplier 1
555
2
5555
5555
3
Supplier 2
000
0
3333
3333
3
Supplier 2
008
0
7777
7777
3
Supplier 2
232
1
2323
2323
1
Supplier 2
333
3
3333
3333
3
Supplier 2
555
1
5151
5151
3
Supplier 2
888
0
9999
0000
0
Exemplo 4 – expressões de gráfico para extrair informações de contato comercial (com comparação de ExtractRegEx())
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Uma tabela chamada BusinessContactInfo, que contém informações sobre empresas que foram encontradas no site de cada empresa.
ContactInfo é um campo que contém texto livre, incluindo endereços de e-mail e números de telefone da empresa. Queremos extrair cada endereço de e-mail e número de telefone com expressões de gráfico.
Nossos requisitos:
Os endereços de e-mail devem atender a um conjunto específico de requisitos e sintaxe.
Números de telefone devem ser números de telefone da NANP com 10 dígitos. Queremos permitir que o código de área seja colocado entre colchetes e permitir espaços em branco e hifens em determinados pontos.
Script de carregamento
BusinessContactInfo:
Load * Inline `
ID CompanyName ContactInfo
1 Company A Email is: Company1@example.com, Phone number is: (123) 456-7890
2 Company B Email is: company2@test.com, Phone # is: 0123456790
3 Company C Email is: company3@placeholder.com, Phone no. is: 234-567-8901
` (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
CompanyName
Adicione as seguintes dimensões calculadas à tabela:
A mesma expressão composta regular é reutilizada para recuperar informações diferentes. O argumento group especifica qual dos dois grupos da expressão regular deve ser pesquisado e o argumento field_no especifica qual correspondência geral (em toda a string) queremos encontrar.
A variante ExtractRegEGroupI() da função garante pesquisas sem distinção entre maiúsculas e minúsculas.
Exemplo 5 – Análise de URL (com comparação de ExtractRegEx())
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Uma tabela chamada Correspondence, que contém o texto da mensagem de e-mail em um campo chamado EmailBody.
Conteúdo de mensagem de e-mail que contém URLs da Web.
Queremos extrair a segunda URL, se presente, nos seguintes componentes:
URL completa
Protocolo
Domínio
Caminho
Queremos usar uma única expressão regular para controlar toda a extração.
Script de carregamento
Correspondence:
Load * Inline `
ID EmailBody
1 Thanks again for this morning's meeting! You can find the meeting minutes posted here: https://example.com/resourceexample. If you still have any questions, always feel free to ask me or one of the other team members. Here are a few learning resources that might help you: http://www.example.ca/training1.pptx http://www.example.ca/training2.pptx http://www.example.ca/training3.pptx Thanks again!
2 Hi, you'll want to visit our company website for that, it's available at https://www.example.se.
3 Hello all, I just wanted to let you know that our online stores are now up and running! I couldn't be more excited. We are already seeing quite a bit of traffic and volume sold, which is very promising! For Product A, go to https://www.examplestore1.com/products. For Product B, you'll want go to https://www.examplestore2.com/products. Product C, go check out https://www.examplestore3.com/products. Cheers!
` (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
ExtractRegEx() retorna toda a URL, enquanto ExtractRegExGroup() retorna partes individuais da URL, correspondentes ao valor group que usamos. O registro com um valor paraID de 2 contém apenas uma URL, portanto, nenhum dado é retornado para ele.
A mesma expressão regular é usada em todas as expressões de gráfico para retornar diferentes informações. A análise dos grupos definidos na expressão regular é a seguinte.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!