# MatchRegEx - Função de script e de gráfico

MatchRegEx() compara a string de entrada com um ou mais padrões de expressão regular especificados e retorna a localização numérica dos padrões de expressão regular correspondentes. Se nenhuma correspondência for encontrada, a função retornará 0. Essa função procura apenas correspondências exatas.

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. |
| 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('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')` | 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

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### Script de carregamento e resultados

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

| Formato | Número de instâncias | Expressão de gráfico |
| --- | --- | --- |
| (###) ###-#### | 3 | =Count({&lt;PhoneNumberFormat={'1'}&gt;} PhoneNumberFormat) |
| ###-###-#### | 3 | =Count({&lt;PhoneNumberFormat={'2'}&gt;} PhoneNumberFormat) |
| ########## | 3 | =Count({&lt;PhoneNumberFormat={'3'}&gt;} PhoneNumberFormat) |
| Unrecognized format | 1 | =Count({&lt;PhoneNumberFormat={'0'}&gt;} PhoneNumberFormat) |

## Exemplo 2 – expressão de gráfico para identificar o formato ISBN

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/MatchRegEx.htm)

#### Expressão e resultados do gráfico

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:

```
=if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=1, '13-digit', 
	if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=2, '10-digit',
		'Invalid ISBN'))
```

Tabela de resultados

| Book | ISBN Format |
| --- | --- |
| ISBN 000-1-0123-0123-2 | 13-digit |
| ISBN 0-111-23456-7 | 10-digit |
| ISBN 1-901-23456-8 | 10-digit |
| ISBN 2-444-44444-4 | 10-digit |
| ISBN 012-2-0123-0123-4 | 13-digit |
| ISBN 123-3-1234-1234-0 | 13-digit |
| ISBN 222-4-2222-2222-2 | 13-digit |
| ISBN 232-1-2323-2323-1 | 13-digit |
| ISBN 333-3-3333-3333-3 | 13-digit |
| ISBN 555-1-5151-5151-3 | 13-digit |
| ISBN 555-2-5555-5555-3 | 13-digit |
| ISBN 888-0-9999-0000-0 | 13-digit |

## Saiba mais

* [Trabalhando com expressões regulares em scripts de carregamento e expressões de gráfico](https://help.qlik.com/pt-BR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)