SubFieldRegEx() extrai texto de uma expressão de string de entrada, usando o padrão de expressão regular especificado como delimitador. A função retorna um valor nulo se nenhuma correspondência for encontrada.
Essa função executa operações regex que diferenciam maiúsculas de minúsculas. Como alternativa, você pode usar a variante SubFieldRegExI() para realizar operações de regex sem distinção entre maiúsculas e minúsculas.
O texto da string de entrada na qual você deseja procurar um padrão de expressão regular.
regex_delimiter
Expressão de string contendo a expressão regular a ser usada como delimitador. Você pode especificar mais de um delimitador no mesmo padrão de expressão regular, separando-os com um caractere | (tubo vertical).
field_no
Valor inteiro que indica o número da subdivisão que você deseja extrair. Por exemplo, especifique um valor de 4 para extrair a quarta subdivisão. Este é um argumento opcional.
Os itens a seguir se aplicam independentemente de a função ser usada em um script de carregamento ou em uma expressão de gráfico:
Se field_no for positivo, a função retornará um valor, identificando as correspondências da esquerda para a direita.
Se field_no for negativo, a função retornará um valor, identificando correspondências da direita para a esquerda.
Ao usar a função em um script de carregamento:
Se a função SubFieldRegEx() for usada em uma instrução LOAD e field_no for omitido, a função gerará tantos registros quantas forem as correspondências.
Se vários campos forem carregados usando SubFieldRegEx() e nenhum deles especificar um argumento field_no, os produtos cartesianos de todas as combinações serão criados.
Ao usar a função em uma expressão de gráfico:
Se o field_no for omitido, o valor padrão será 1.
Exemplos de funções
Exemplo
Resultado
SubFieldRegEx('a,b c;1 2,3',' |,|;', 1)
Retorna a. Neste exemplo, são especificados três caracteres delimitadores (espaço, vírgula e ponto e vírgula).
SubFieldRegEx('a;b;c;1;2;3',';', 2)
Retorna b. Nesse caso, apenas um caractere delimitador é especificado (ponto e vírgula).
SubFieldRegEx('a,b c;1 2,3',' |,|;', 4)
Retorna 1.
Quando usar
Você pode usar SubFieldRegEx() para extrair vários valores individuais de uma lista delimitada. Por exemplo, se você tiver uma lista separada por vírgulas contida em um bloco maior de linguagem natural, poderá usar esta função para isolar cada valor individual da lista em um novo registro no seu modelo de dados.
Exemplo 1 – script de carregamento para separar tags por 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 Transaction_By_Tag, que inicialmente contém dados de transação. Esses dados são processados para extrair valores de tags individuais em novos registros.
A criação de um campo, TransactionTag, para armazenar os valores de tag extraídos.
No campo que contém as tags de transação, várias tags estão contidas em sequências de texto, separadas por delimitadores. O delimitador pode ser qualquer um dos seguintes caracteres: , | ;
Script de carregamento
Transaction_By_Tag:
Load SubFieldRegEx(Tags, ',|;|\|') as TransactionTag,
* Inline [
ID Product Tags Amount
1 Product A Special order,Eligible for return,Warranty included 100.93
2 Product B Ineligible for return|No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
drop fields Tags;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
ID
Product
TransactionTag
Tabela de resultados
ID
Product
TransactionTag
1
Product A
Eligible for return
1
Product A
Warranty included
1
Product A
Special order
2
Product B
No warranty available
2
Product B
Ineligible for return
3
Product C
No warranty available
4
Product B
Liquidation sale
4
Product B
Special order
4
Product B
Warranty included
Este exemplo demonstra que, quando usado em um script de carregamento, SubFieldRegEx() retorna uma linha separada para cada correspondência encontrada na string de entrada.
Exemplo 2 – expressões de gráfico para separar tags por 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 Transaction_By_Tag, que contém dados de transação.
Um campo, Tags, que contém sequências de texto para armazenar todas as tags associadas a uma transação.
Nossos requisitos:
No campo que contém as tags de transação, várias tags estão contidas em sequências de texto, separadas por delimitadores. O delimitador pode ser qualquer um dos seguintes caracteres: , | ;
Queremos usar expressões de gráfico para separar cada tag em seu próprio campo, com até três tags possíveis para adicionar a uma transação.
Script de carregamento
Transaction_By_Tag:
Load * Inline [
ID Product Tags Amount
1 Product A Special order, Eligible for return, Warranty included 100.93
2 Product B Ineligible for return | No warranty available 51.11
3 Product C No warranty available 12.83
4 Product B Special order;Liquidation sale;Warranty included 209.48
] (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
ID
Tags
Adicione estas dimensões calculadas:
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
Tabela de resultados
ID
Tags
=SubFieldRegEx(Tags, ',|;|\|', 1)
=SubFieldRegEx(Tags, ',|;|\|', 2)
=SubFieldRegEx(Tags, ',|;|\|', 3)
1
Special order, Eligible for return, Warranty included
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!