Voici des exemples détaillés de regex pour différents cas d’usage de recherche et remplacement dans du code :
Rechercher une information dans du code avec une regex
Date
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
Cette regex permet de matcher un format de date valide du type JJ/MM/AAAA.
Heure (format 24H)
(0[0-9]|1[0-9]|2[0-3])[:Hh]([0-5][0-9])
Cette regex permet de vérifier un format d’heure sur 24h valide.
Adresse email
[\w-\.]+@([\w-]+\.)+[\w-]{2,4}
Cette regex permet de vérifier qu’une chaîne de caractères est bien formatée comme une adresse email.
Numéro de téléphone français
0[1-9]([-. ]?[0-9]{2}){4}
Cette regex vérifie un format de numéro de téléphone français valide.
Code Postal
[0-9]{5}
Cette regex simple permet de vérifier qu’un code postal est composé de 5 chiffres.
URL
https?://(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)
Cette regex complexe permet de matcher une URL complète avec http(s), nom de domaine, et chemin optionnel.
Slug
^[a-z0-9-]+$
Cette regex permet de vérifier qu’un slug ne contient que des caractères alphanumériques et des traits d’union.
Chemin d’accès aux fichiers
(\/)?[a-z0-9_\-^!#$%&+={}.\/\\[\]]+(\.[a-z0-9]+)?$
Cette regex permet de vérifier qu’un chemin de fichier est valide.
Espace blanc/vide
^\s*$
Cette regex permet de vérifier qu’une chaîne de caractères ne contient que des espaces.
Balises titres
<h([1-6].*?>(.*?)</h\1>
Cette regex permet de récupérer le contenu d’une balise de titre HTML de n’importe quel niveau.
Balises HTML
<[^>]*>
Cette regex simple permet d’extraire n’importe quelle balise HTML.
Rechercher et remplacer avec des regex
Remplacer mes titres de niveau 1 par des titres de niveau 2
Rechercher : <h1[^>]*>(.*?)</h1>
Remplacer : <h2>$1</h2>
Modifier le texte de mes sous-titres
Rechercher : (<h2[^>]*>).*?(</h2>)
Remplacer : $1Mon nouveau titre$2
Chercher les images sans texte altérnatif
Rechercher : <img[^>]* />
Remplacer : <img src="$1" alt="Texte alternatif" />
Supprimer les attributs de style
Rechercher : style="[^"]*"
Remplacer par : rien
Modifier le style de mes balises
Rechercher : (<img[^>]*)>
Remplacer : $1 style="margin:auto;display:block;"
Centrer une image
Rechercher : <img([^>]+?)>
Remplacer : <img$1 style="display:block; margin: 0 auto;">
Chercher des lignes doublons succéssives
Rechercher : ^(.*)(\r?\n\1)+$
Remplacer par : $1
Modifier les couleurs de texte
Rechercher : #([0-9a-f]{6}|[0-9a-f]{3})
Remplacer : #ff0000
Ajouter des couleurs au titre de niveau 2
Rechercher : (<h2[^>]*>)
Remplacer : $1 style="color:#ff0000;"
Modifier la couleur de police d’un élément
Rechercher : (<h3 [^>]*style="[^"]*color:\s*)#.*("[^>]*>)
Remplacer : $1#ff7a59$2
Modifier une adresse email
Rechercher : ([\w-.]+@(?!anthro)\w+.\w+)
Remplacer : monnouvel@email.com
Modifier le @ d’une adresse email
Rechercher : ([\w-]+\.+\w+)@
Remplacer : $1(arobase)
Modifier une date dans un titre
Rechercher : (<h1[^>]*>)(.*?)\d{4}(?!2023)(.*?</h1>)
Remplacer : $12023$3
Autres exemples de rechercher/remplacer
Modifier la date de publication d’un article
Rechercher : date\.published" content="\d{4}-\d{2}-\d{2}"
Remplacer : date.published" content="2023-12-31"
Trouver des articles avec une année de publication incorrecte
Rechercher : date\.published" content="(?!\d{4})(.*?)"
Remplacer les espaces simples devant certains signes de ponctuation
Rechercher : \s([?.!:])
Remplacer : $1
Supprimer des balises entre des titres
Rechercher : <h2[^>]*>(?:[^<]*<[^>]*>)*([^<]*)</h2>
Remplacer : <h2>$1</h2>
Passer des liens en nofollow
Rechercher : <a[^>]*href="([^"]+)"[^>]*>
Remplacer : <a href="$1" rel="nofollow">
Récupérer des titres numérotés
Rechercher : <h([1-6])>\s?\d+[-.)]\s*(.*?)\s*</h\1>
Remplacer : <h$1>$2</h$1>
Regex pour la recherche de liens
Récupérer les liens pointant vers mondomaine.com
Regex : https?://(?:www\.)?(mondomaine\.com/[^"]+)"
Trouver les liens sans certains paramètres
Regex : https?://(?:www\.)?exemple\.com(?!(\?|&)utm_campaign=)
Extraire l’ID de campagne d’une URL
Regex : utm_campaign=([^&]+)
Abonnez-vous à notre newsletter pour recevoir les derniers articles directement dans votre boîte mail.
Commentaires