Sommaire
- Looker Studio : gérer les dates et la granularité dans les graphs - 14 mars 2023
- Optimiser les pages avec les bons mots clés (DataStudio + Google Search Console) - 29 novembre 2020
- Seocamp 2020, les slides ? - 9 octobre 2020
Peut-être avez-vous entendu parler de regex sans savoir ce que ça signifiait ni comment ça se prononçait et encore moins à quoi ça servait.
Peut-être connaissez-vous déjà le mot regex, sa signification (regular expression, soit expression régulière ou encore expression rationnelle) mais vous ne savez pas les utiliser.
Et bien voici un petit guide qui je l’espère répondra à ces questions.
Qu’est-ce qu’une expression régulière ?
En quelques mots, les regex servent à schématiser des chaines de caractères.
Prenons un exemple précis : vous êtes dans Google Analytics et souhaitez avoir les statistiques sur un certain type de page, par exemple des rubriques.
Vous savez que les URL des rubriques correspondent à : /rubrique-pageN.html et les produits à /rubrique/produit-ID.html . Et bien grâce aux expressions régulières, dans les filtres de google analytics (ou les segments, on peut les utiliser à plusieurs endroits), vous pourrez en sélectionnant « correspondant à l’expression régulière » voir toutes les pages qui correspondent à ces schémas.
Où utiliser des regex ?
Les expressions régulières, c’est quand même bien pratique. Surtout si vous utilisez Google Analytics. Ou bien Screaming Frog. Ou encore SEO tools for Excel. Ou bien Google Spreadsheet. Ou bien un pour faire des règles de redirections. Bref, les regex, c’est bien utile quand on fait du webmarketing, du seo, du dev, etc.
Allez, entrons dans le vif du sujet.
Comment écrire une expression régulière ?
le point d’interrogation ?
? : le point d’interrogation permet de dire qu’un caractère est optionnel.
Exemple : Matt?hieu (le 2e T est optionnel)
Ce qui rend possible : Matthieu, Mathieu
les parenthèses ()
() : permet de mieux limiter un groupe, un ensemble de caractère. C’est la même utilisation qu’en maths.
le pipe |
| : signifie OU (cela donne le choix parmi plusieurs possibilités)
Exemple : Matthieu|Mathieu
Ce qui donne : Matthieu ou Mathieu
l’antislash \
\ permet de forcer un caractère, de dire qu’il ne s’agit pas d’un opérateur mais bien d’un caractère.
Par exemple : Mathieu ou Matthieu\?
Si je ne mets pas le point d’interrogation, mon expression serait interprétée comme ceci : Mathieu ou Matthie, Mathieu ou Matthieu
le point .
. : le point permet de remplacer un caractère (chiffre, lettre, caractère spécial, etc.)
le plus +
+ : le plus indique qu’un caractère est répété au moins 1 fois
Exemple : Mat+hieu
Ce qui donne : Mathieu, Matthieu, Matttttttttttttttttttttttttttttttttttthieu (mais pas Mahieu)
l’étoile *
* : l’étoile indique qu’un caractère est peut-être répété.
Exemple : Mat*hieu
Ce qui peut donner : Mahieu, Mathieu, Matthieu, Mattttttttttttttttttttttttttthieu
(.*) permet de dire que n’importe quel caractère est répété. Bref, qu’il y a une chaine de caractères, qu’il y a un truc, ou pas.
les crochets []
[] indique un caractère parmi une liste.
[0-3] = un chiffre entre 0 et 3
on pourrait également l’écrire (0|1|2|3) mais c’est plus long.
[mdp] = soit m, soit d, soit p
[a-z] = une lettre en minuscule entre a et z
[A-Z] = une lettre en majuscule
[a-zA-Z] = une lettre en minuscule ou une lettre en majuscule, bref une lettre
[a-zA-Z0-9] = une lettre en minuscule ou une lettre en majuscule ou un chiffre, bref une lettre ou un chiffre
les accolades{}
{} permet de dire combien de fois est répété.
{3} = est répété 3 fois
{2,5} : est répété au moins 2 fois et au plus 5 fois (bref est répété entre 2 et 5 fois).
Pour rappel, l’étoile indique qu’il n’y a pas de limite dans la répétition, on peut également écrire * = {0,}
Le + = {1,}
? = {0,1}
l’accent circonflexe ^
^indique le début d’une chaine de caractère
Exemple : ^http (ca commence par http, il n’y a rien avant http)
[^] exclut une liste.
Par exemple [^mdp], ça ne contient ni m, ni d, ni p.
le dollar $
$ indique la fin d’une chaine de caractère
Exemple \.html$ (ca se termine par .html, il n’y a rien derrière le .html)
Voilà, ce n’est pas plus compliqué que ça…il y a d’autres petites astuces mais rien qu’avec ça, on peut faire beaucoup.
Pingback: Les bonnes adresses web pour les développeurs
Merci pour ces définitions des regex qui vont m’aider dans on apprentissage.
merci beaucoup pour vos explications
Bonjour,
J’aime beaucoup la présentation et la clarté de votre article/tutoriel. Très beau travail !
J’ai tout de même une interrogation :
Est-ce possible d’illustrer l’article avec un exemple concret d’utilisation des Regex en SEO ?
J’ai commencé à travaillé en SEO dans mon entreprise, mais je n’arrive toujours pas à comprendre quand utiliser les Regex et surtout, quelles données je dois récupérer ?
Merci beaucoup pour votre implication.
Bien cordialement,
Re bonjour,
Je me suis rendu compte que j’oubliais une autre question à laquelle je ne trouve pas de réponse.
D’après l’exemple suivant :
Je souhaite chercher une date dans un document qui contiendrait :
04/09/2019
25/11/2018
13/04/2017
J’écrirais donc #^([0-9]{2}\/){2}[0-9]{4}$#
Cependant une date ne peut pas être par exemple :
00/13/9999
Mon problème est donc : Comment exclure une suite de caractères ? Pour le « 00 » si j’écris #[^00][^32]+#
Je n’exclus pas « 00 » mais « 0 ou 0 » ce qui ne m’avance pas.
Ainsi, comment puis-je exclure cette suite de 2 chiffres ?
Merci beaucoup et dsl pour la lecture 🙁
il est possible d’écrire une regex un peu plus restrictive :
(([0-2][0-9])|(3[01]))\/([01][0-2])\/([12][0-9]{3})
Ce n’est pas exact non plus car cela autorise le 00 en jour.
Pour le mois, c’est ok.
Et pour l’année, elle ne doit commencer que par 1 ou 2.
Merci pour cette article très didactique. Bon, je crois qu’il va falloir que je pratique encore un peu, en tout cas cet article m’a au moins permis de mettre en place une réécriture d’url sur l’ensemble des articles d’un blog ou j’ai changé le format date/categories/post en /post
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ https//NDD.TLD/$4
Elle est pas belle ma réécriture ? Merci encore pour le tuto !!
Mille merci, c’est très claire
Super pres merci!