MatchRegEx() compara uma string de entrada (text) com uma ou mais expressões regulares (regex). Retorna a localização numérica dos padrões de expressão regular que correspondem. Retorna uma resposta de correspondência somente se a avaliação da expressão regular corresponder a toda a entrada de texto. Se nenhuma correspondência for encontrada, a função retornará 0.
Essa função executa operações regex que diferenciam maiúsculas de minúsculas. Como alternativa, você pode usar a variante MatchRegExI() para realizar operações de regex sem distinção entre maiúsculas e minúsculas.
Sintaxe:
MatchRegEx
(text, regex1 [ , regex2,...regexN])
Tipo de dados de retorno: inteiro
Argumentos
Argumento
Descrição
text
O texto da string de entrada ao qual você deseja corresponder uma ou mais expressões regulares. Para que uma correspondência ocorra, esta string de entrada precisa ser uma correspondência exata com o padrão regex.
regex
A expressão regular a ser tentada para corresponder à string de entrada. Você pode especificar mais de uma expressão regular em uma única expressão, separadas como argumentos subsequentes.
Exemplos de funções
Exemplo
Resultado
MatchRegEx('testSample','test')
Retorna 0 . A função só retorna uma resposta de correspondência quando há uma correspondência exata entre text e o padrão regex. Embora testSample contenha test, ela contém outro texto (Sample), o que impede uma correspondência exata.
Retorna 3. O terceiro padrão regex é o primeiro a corresponder aos dados.
MatchRegEx('ABC','[abc]+','[123]')
Retorna 0, porque MatchRegEx() diferencia maiúsculas de minúsculas.
MatchRegExI('ABC','[abc]+','[123]')
Retorna 1. A variante da função que não diferencia maiúsculas de minúsculas, MatchRegExI(), é usada.
Quando usar MatchRegEx
Os casos de uso dessa função incluem:
Validação de texto para atender aos padrões de formatação e conformidade e identificar erros nos dados.
Identificação de diferenças na forma como o texto é formatado. Por exemplo, você pode identificar quantos números de telefone usam o formato A, o formato B e assim por diante.
Exemplo 1 – script de carregamento para analisar formatos de números de telefone
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.
O script de carregamento contém:
Uma tabela BusinessContactInfo contendo números de telefone de contato de várias empresas. Os números de telefone são números de telefone NANP de 10 dígitos.
Um campo calculado, PhoneNumberFormat, para avaliar se cada número de telefone corresponde a um conjunto específico de formatos de número de telefone.
Há três formatos diferentes que queremos verificar: (###) ###-####, ###-###-#### e ########## .
Script de carregamento
BusinessContactInfo:
Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID CompanyName ContactInfo
1 Company A (123) 456-7890
2 Company B 0123456790
3 Company C 234-567-8901
4 Company D (024) 680-2456
5 Company E (135) 791-3579
6 Company F 8901234567
7 Company G 235-235-2352
8 Company H (555) (555) (5555)
9 Company I 2342342343
10 Company J 444-444-4444
` (delimiter is '\t');
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
CompanyName
ContactInfo
PhoneNumberFormat
Tabela de resultados
CompanyName
ContactInfo
PhoneNumberFormat
Company A
(123) 456-7890
1
Company B
0123456790
3
Company C
234-567-8901
2
Company D
(024) 680-2456
1
Company E
(135) 791-3579
1
Company F
8901234567
3
Company G
235-235-2352
2
Company H
(555) (555) (5555)
0
Company I
2342342343
3
Company J
444-444-4444
2
A partir daí, por exemplo, você pode criar KPIs para calcular a contagem total de cada formato de número de telefone, bem como o número de números de telefone que não têm um formato reconhecido:
Exemplos de expressões de agregação para contar ocorrências de cada formato
Exemplo 2 – expressão de gráfico para identificar o formato ISBN
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.
O script de carregamento contém:
Uma tabela Books listando os códigos ISBN de vários livros.
Com base nesses dados, queremos identificar se cada código ISBN é um código válido de 10 ou 13 dígitos, com base na sintaxe especificada em um padrão regex.
Script de carregamento
Books:
Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
Book
Adicione essa dimensão calculada e dê a ela o rótulo ISBN Format: