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 : &nbsp;$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=([^&]+)