# MatchRegEx - fonction de script et fonction de graphique

MatchRegEx() compare la chaîne d'entrée à un ou plusieurs modèles d'expression régulière spécifiés et renvoie l'emplacement numérique des modèles d'expression régulière correspondants. Si aucune correspondance n'est trouvée, la fonction renvoie 0. Cette fonction recherche uniquement les correspondances exactes.

Cette fonction effectue des opérations de regex sensibles à la casse. Sinon, vous pouvez utiliser la variante MatchRegExI() pour effectuer des opérations de regex non sensibles à la casse.

MatchRegEx (text, regex1 [ , regex2,...regexN])

entier

Arguments

| Argument | Description |
| --- | --- |
| text | Texte de chaîne d'entrée à mettre en correspondance avec une ou plusieurs expressions régulières. |
| regex | Expression régulière à essayer de mettre en correspondance avec la chaîne d'entrée. Vous pouvez spécifier plusieurs expressions régulières dans une même expression, séparées sous forme d'arguments successifs. |

Exemples de fonction

| Exemple | Résultat |
| --- | --- |
| `MatchRegEx('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')` | Renvoie `3`. Le troisième modèle de regex est le premier à correspondre aux données. |
| `MatchRegEx('ABC','[abc]+','[123]')` | Renvoie `0`, car MatchRegEx() est sensible à la casse. |
| `MatchRegExI('ABC','[abc]+','[123]')` | Renvoie `1`. La variante non sensible à la casse de la fonction,MatchRegExI(), est utilisée. |

## Cas d'utilisation

Les cas d'utilisation de cette fonction sont les suivants :

* Validation d'un texte de sorte qu'il respecte les normes de formatage et de conformité, et identification des erreurs dans les données.

* Identification des différences de formatage du texte. Par exemple, vous pouvez déterminer le nombre de numéros de téléphone qui utilisent le format A, le format B, etc.

## Exemple 1 – Script de chargement permettant d'analyser les formats de numéros de téléphone

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

#### Script de chargement et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Tableau `BusinessContactInfo` contenant les numéros de téléphone des contacts de différentes entreprises. Les numéros de téléphone sont des numéros NANP de 10 chiffres.

* Champ calculé, `PhoneNumberFormat`, permettant de déterminer si chaque numéro de téléphone correspond à l'un des formats de numéros de téléphone spécifiés.

Nous voulons vérifier trois formats différents : (###) ###-####, ###-###-#### et ##########.

Script de chargement

```
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');
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :

* `CompanyName`

* `ContactInfo`

* `PhoneNumberFormat`

Tableau de résultats

| 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 |

À partir de là, par exemple, vous pouvez créer des indicateurs clés de performance (ICP) pour calculer le nombre total pour chaque format de numéro de téléphone, ainsi que le nombre de numéros de téléphone dont le format n'est pas reconnu :

Exemples d'expressions d'agrégation permettant de compter les occurrences de chaque format

| Format | Nombre d'instances | Expression de graphique |
| --- | --- | --- |
| (###) ###-#### | 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) |

## Exemple 2 – Expression de graphique permettant d'identifier le format ISBN

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

#### Expression de graphique et résultats

Vue d'ensemble

Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à une nouvelle section.

Le script de chargement contient :

* Tableau `Books` répertoriant les codes ISBN de différents livres.

À partir de ces données, nous voulons déterminer si chaque code ISBN est un code valide de 10 ou de 13 chiffres, en fonction de la syntaxe spécifiée dans un modèle de regex.

Script de chargement

```
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
];
```

Résultats

Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :

* `Book`

Ajoutez cette dimension calculée et libellez-la 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'))
```

Tableau de résultats

| 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 |

## En savoir plus

* [Utilisation d'expressions régulières dans les scripts de chargement et les expressions de graphique](https://help.qlik.com/fr-FR/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/regular-expressions-qlik-analytics.htm)