Catégories
tutoriel

Regex Tutorial 2020 : Pourquoi & Comment les utiliser ?

Les Regex sont des outils puissants utilisés dans de nombreux domaines pour rechercher ou remplacer du texte. Dans cet article, nous allons vous présenter quelques cas d’usage avant de vous expliquer comment les utiliser. Let’s go !

A quoi servent les Regex ?

Les Regex ou « Regular expression » ou encore « Expressions régulières » sont des chaînes de caractères qui décrivent un ensemble variable. Au départ, ça peut vraiment ressembler à du chinois, quoi que… Mais vous verrez assez vite que ces chaînes de caractères bizarroïdes ont un sens et qu’avec un peu d’entraînement, tout s’éclaire (ou presque).

Petite précision : les Regex peuvent être utilisées dans plusieurs langages (Python, Javascript, MySQL, PHP,…) et même intégrés dans des lignes de code (en C#, Perl,…). Bref, suivant le langage, il pourra y avoir de petites variations syntaxiques pour que la Regex soit bien prise en compte comme vous le voulez.

Pour faire court, chaque Regex est décrite par des formules ou des patterns (des motifs si vous préférez). Dans le langage PHP par exemple (avec le type de Regex « PCRE » qui est le plus rapide et le plus performant), vous avez différentes fonctions qui débutent toutes par « preg_ ».

  • preg_replace
  • preg_split
  • preg_match
  • preg_quote
  • etc.

Nous avons choisi de travailler avec preg_match qui permet de tester une chaîne à partir d’une Regex. Concrètement, vous devez avoir en entrée une chaîne de caractères à tester + une Regex et vous obtiendrez  en sortie un résultat booléen « VRAI » (« TRUE ») ou « FAUX » (« FALSE »). Si dans la chaîne, la fonction trouve la Regex, alors il considère que la réponse est « VRAI », sinon c’est « FAUX ».

Le code pour tester une Regex est assez simple :

<?php
if (preg_match("** Votre REGEX **", "Ce dans quoi vous faîtes la recherche"))
{
    echo 'Le mot que vous cherchez se trouve dans la chaîne';
}
else
{
    echo 'Le mot que vous cherchez ne se trouve pas dans la chaîne';
}
?>

La Regex a la forme suivante : #Regex#Options

Bon, on pourrait commencer par vous faire un long et fastidieux cours sur la façon dont on écrit une Regex. On verra ça plus tard. En guise de préambule, nous avons plutôt choisi de vous présenter trois cas d’usage concrets et français !

Cas d’usage n°1 : Objectifs sur Google Analytics

Sur GTM, on peut utiliser des balises d’évènement qui vont être déclenchées en réponse à une action spécifique (par exemple un clic sur un lien ou l’envoi d’un formulaire d’inscription). Mais attention, un évènement n’est pas forcément un objectif. Pour rappel, un évènement contient une catégorie, et une action, voire un label. Plusieurs boutons peuvent conduire au même objectif, par exemple « réaliser une vente », mais on aura donc plusieurs évènements.

Avec les Regex, on peut utiliser Google Analytics et ne créer qu’un seul évènement par objectif. Considérons que j’ai 3 produits sur mon site, appartenant à la même catégorie, et que mon seul objectif est de suivre les ventes réalisées dans cette catégorie là (et non pas les ventes de chaque produit). Je créé donc mon objectif sur Google Analytics.

Considérons maintenant les trois URL des produits :

  • www.monsite.fr/categorieA/produit?id=123
  • www.monsite.fr/categorieA/produit?id=456
  • www.monsite.fr/categorieA/produit?id=789

Sur Google Analytics, dans l’onglet « Filtres », on va donc écrire une Regex qui dit que si j’ai un produit dans la catégorie A qui a un numéro id constitué d’au moins un chiffre allant de 0 à 9, on prend en compte l’URL pour l’objectif.

/categorieA/produit ?id=[0-9]{1,}

Dans Google Analytics, il suffira ensuite d’indiquer dans « Filtres » « inclure » « URL de la demande » et dans « Règle de filtrage », écrire la Regex.

Regex Google Analytics Objectifs
Filtres avec des Regex sur Google Analytics

Et voilà le travail ! Vous avez utilisé les Regex sur Google Analytics pour filtrer les données et ne retenir que celles qui servent à l’objectif.

25 cours. 5 disciplines.

Scraping, Cold Emailing, Data, Analytics, SEO, Ads, Landing Pages, ...

Parcourir les Cours

Cas d’usage n°2 : Segment Google Analytics

Dans Google Analytics, vous pouvez segmenter vos données. Autrement dit, vous pouvez isoler et analyser des sous-parties (ou « segments ») de vos données. Suivant les cas, il peut s’agir de segments d’utilisateurs, de sessions ou d’appels. Admettons que dans notre exemple nous ne voulons voir dans les résultats que le segment d’utilisateurs originaire de France, de Belgique ou d’Italie. On peut obtenir la liste de ces users en créant un segment sur Google Analytics avec la règle de filtrage France|Belgique|Italie.

Regex 4
Segmenter les users en fonction du pays d’origine

Dans ce cas (comme dans bien d’autres), faire appel à des Expressions Régulières est plus rapide que de créer plusieurs filtres pour arriver à ses fins. Les Regex permettent aussi de traduire des besoins beaucoup plus précis, donc d’accéder à une segmentation non pas basique mais avancé.

Cas d’usage n°3 : Regexmatch sur Excel

Hé oui : les Regex sont partout, y compris dans Excel ! Dans l’exemple qui va suivre, nous allons définir et faire appel à une Regex qui va analyser le contenu de la cellule A1. La fonction va regarder si le premier ou les deux premiers caractères de la chaîne sont des chiffres. Si ça matche, alors les chiffres sont supprimés et la fonction affiche le reste de la chaîne de caractères. Si ça ne matche pas, la réponse sera « ne correspond pas ».

Avant de se lancer dans l’exemple, vous devez d’abord ajouter Microsoft Visual Basic. Pour cela, rendez-vous sur Excel.

  • Allez sur l’onglet Développeur (ou activez-le dans les paramètres Excel s’il n’apparait pas)
  • Appuyez sur « Visual Basic » puis sur « Code »
  • Vous trouverez ensuite l’onglet « Outils »
  • Cliquez sur « Références »
  • Sélectionnez « Microsoft VBScript Regular Expressions 5.5 »
  • Validez
Regex excel
Impression écran sur Microsoft Visual Basic

Entrez ensuite le code présenté ci-dessous (il permet de définir la Regex)

Function simpleCellRegex (Myrange As Range) As String
      Dim regEx As New RegExp
      Dim strPattern As String
      Dim strInput As String
      Dim strReplace As String
      Dim strOutput As String

      strPattern = "^[0-9]{1,3}"

      If strPattern <> "" Then
             strInput = Myrange.Value
             strReplace = ""

             With regEx
                        .Global = True
                        .MultiLine = True
                        .IgnoreCase = False
                        .Pattern = strPattern
              End With

               If regEx.test(strInput) Then
                      simpleCellRegex = regEx.Replace(strInput, strReplace)
               Else
                      simpleCellRegex = "Ne correspond pas"
                End If
      End If
End Function

Il suffit ensuite d’inscrire une chaîne de caractères dans une cellule, par exemple A1, puis d’appeler la fonction en B1 comme suit :

=simpleCellRegex(A1)

Quelques exemples de résultats :

Regex excel 4
Exemples de résultats

Cas d’usage n°4 : Fonction « OU » dans Google Tag Manager

Dans Google Tag Manager, vous pouvez paramétrer des conditions de déclenchement pour envoyer vos données. Autrement dit, vous pouvez paramétrer Tag manager pour qu’il envoi un hit d’événement vers analytics si certaines interactions se produisent.

Par exemple le clic sur une URL. Pour éviter de paramétrer autant de déclencheurs qu’il y à d’URLs différentes sur votre site, le reggex avec l’opérateur « | » correspondant à la fonction logique « OU » permet de gagner un temps considérable.

Par exemple au lieu de faire 3 déclencheur distincts correspondant aux clics de partage sur les réseaux sociaux, il est possible de faire un seul déclencheur en utilisant « | ».

Ce qui donne « Page URL » + « correspond à l »expression régulière » + « (URLFacebook|URLInstagram|URLTwitter) »

dans l’exemple ci dessus, l’ouverture des parenthèse suivi des « ou » sous la forme de « | » permettent de donner l’ordre envoie la donnée si la page url est égale à URLFacebook, ou URLInstagram, ou URLTwitter.

25 cours. 5 disciplines.

Scraping, Cold Emailing, Data, Analytics, SEO, Ads, Landing Pages, ...

Parcourir les Cours

Syntaxe des possibilités des Regex

Les Expressions Régulières offrent des millions de possibilités. A noter qu’on peut normalement choisir n’importe quel caractère spécial pour délimiter la Regex, par exemple le dièse #.

La liste des métacaractères est la suivante :

Regex metacaracteres

Attention : si vous voulez utiliser un métacaractère dans une recherche, il faut l’échapper avec un antislash «  » sinon ce métacaractère gardera son sens d’origine (par exemple de délimiteur pour le #).

Regex 2
Comment échapper un métacaractère

Voici quelques exemples de syntaxes :

Regex syntaxe 2
Quelques exemples de regex

Il existe également de nombreuses classes de caractères…

Regex classe de caracteres
Quelques classes de caractères

…et de nombreux quantificateurs…

Regex quantificateurs
Quelques quantificateurs

En début d’article, nous avions dit que nous pouvions grâce aux Regex faire des remplacements de caractères. Pour se faire, il faudra utiliser non plus la fonction « preg_match » mais la fonction « preg_replace » (dans l’exemple d’un script php).

<?php
$texte = preg_replace('#[b](.+)[/b]#i', '<strong>$1</strong>', $texte);
?>

Nous avions évoqué également la possibilité d’ajouter des options : #Regex#Options. Le « i » est par exemple une fonction. En l’ajoutant, la Regex ne fait plus la différence entre les majuscules et les minuscules. Bien entendu, la liste de ces options est longue…

Regex : quels outils ?

Une petite recherche sur votre moteur de recherche vous mettra vite au parfum : il y a sur le web pas mal d’outils pour tester des Regex ou pour apprendre à les utiliser. On peut citer en particulier :

Bien que difficiles à maîtriser au premier abord, les Regex sont idéales pour tracker des objectifs ! L’abondance d’exemples pratiques et de sites pour apprendre à les utiliser les rend plus accessibles à des non experts en informatique. C’est un sacré atout ! Et vous, comment les utilisez-vous ? Partagez avec nous votre expérience sur le sujet !

Par Samuel Lamour

Expert Tracking & Analytics

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *