Text/Clean

Rechercher et remplacer : motifs d'expressions régulières pratiques

13 motifs de rechercher-remplacer en regex JavaScript pour nettoyer du texte : format de date, masquage de téléphone, parenthèses, groupes $1.

Rechercher et remplacer propose un mode simple et un mode expression régulière. Le mode simple recherche exactement ce qui a été saisi, le mode expression régulière recherche des motifs. Ce guide rassemble les règles du mode expression régulière et les motifs les plus utiles.

Règles d'expression régulière de cet outil

  • La syntaxe est celle des expressions régulières JavaScript du navigateur.
  • Les drapeaux g (tout remplacer), m (multiligne) et u (Unicode) sont ajoutés automatiquement. Avec « Ignorer la casse » activé, i s'y ajoute.
  • À cause du drapeau m, ^ et $ correspondent au début et à la fin de chaque ligne, et non du texte entier.
  • À cause du drapeau u, une barre oblique inverse inutile provoque une erreur. Par exemple, on ne peut pas écrire \: ; il faut écrire :. Les propriétés Unicode comme \p{L} sont utilisables.
  • Dans le remplacement, $1 et $2 sont les groupes entre parenthèses, $& la correspondance entière et $$ un seul caractère $. \n devient un saut de ligne et \t une tabulation.
  • Si le motif contient une erreur, l'étape ne modifie pas l'entrée et affiche une erreur.
\s correspond aussi au saut de ligne. Pour ne chercher que des espaces sans passer à la ligne suivante, utilisez [ \t].

Motifs pratiques

Le format ci-dessous est « rechercher → remplacer par ». Quand le remplacement est « (vide) », laissez le champ vide.

1. Changer le format d'une date

(\d{4})-(\d{2})-(\d{2})$1.$2.$3

2026-09-23  →  2026.09.23

Pour changer l'ordre, déplacez les numéros de groupe, comme dans $3/$2/$1.

2. Masquer le milieu d'un numéro de portable

(01[016789])-?(\d{3,4})-?(\d{4})$1-****-$3

010-1234-5678  →  010-****-5678
01098765432    →  010-****-5432

Ce motif suit le format des portables coréens (préfixes 010, 011, 016 à 019) ; pour d'autres pays, adaptez le premier groupe au format local.

3. Masquer le début d'une adresse e-mail

\b([A-Za-z0-9._%+-]{2})[A-Za-z0-9._%+-]*@$1***@

hong.gildong@example.com  →  ho***@example.com

4. Effacer les parenthèses et leur contenu

\s*\([^)]*\) → (vide)

Paris (siège) Lyon (agence)  →  Paris Lyon

Les parenthèses imbriquées, comme ((a)), peuvent ne pas être effacées en une seule fois.

5. Effacer les espaces en fin de ligne

[ \t]+$ → (vide)

6. Réduire trois sauts de ligne ou plus à une ligne vide

\n{3,}\n\n

7. Effacer les virgules des milliers

(\d),(?=\d{3}\b)$1

1,234,567 USD  →  1234567 USD

8. Effacer la chaîne de requête et le fragment d'une URL

(https?:\/\/[^\s?#]+)[?#]\S*$1

https://example.com/page?utm_source=a#top  →  https://example.com/page

9. Effacer l'heure en tête d'un historique de discussion

^\[?\d{1,2}:\d{2}(?::\d{2})?\]?[ \t]* → (vide)

[12:30] Bonjour à tous  →  Bonjour à tous

10. Inverser « Nom, Prénom »

^([^,\n]+),[ \t]*(.+)$$2 $1

Kim, Minsu  →  Minsu Kim

11. Réduire un mot répété à un seul

\b(\w+)[ \t]+\1\b$1 (avec « Ignorer la casse » activé, The the est aussi détecté)

12. Séparer hangul et lettres latines par un espace

(\p{Script=Hangul})([A-Za-z])$1 $2

한글abc  →  한글 abc

Utile pour les textes coréens ; en remplaçant Hangul par une autre écriture, comme Han (sinogrammes) ou Hiragana, le même principe s'applique à d'autres langues.

13. Mettre les nombres entre crochets

\d+(?:\.\d+)?[$&]

Erreurs fréquentes

  • Utiliser le point (.) sans échappement : en expression régulière, . désigne n'importe quel caractère. Pour chercher un point final ou le point d'un domaine, écrivez \.. example.com correspond aussi à exampleXcom.
  • Le gourmand .\* : <.*> saisit d'un coup tout ce qui va du premier < au dernier > de la ligne. Appliqué à <b>x</b> <i>y</i>, il efface aussi le texte. Pour saisir une balise à la fois, utilisez <[^>]*> ou <.*?>.
  • Le $ dans le remplacement : en mode expression régulière, pour insérer un $ dans le remplacement, comme dans un prix, écrivez $$. En mode simple, $ est inséré littéralement.
  • Chercher des caractères spéciaux comme du texte : pour chercher ( ) [ ] + ? *, faites-les précéder d'une barre oblique inverse. S'il y a beaucoup de symboles, il est plus simple de désactiver l'expression régulière et d'utiliser le mode simple.

Traiter plusieurs lignes à la fois

En mettant \n dans le texte recherché, vous trouvez le saut de ligne lui-même. Par exemple, ,\n, joint les lignes qui se terminent par une virgule à la ligne suivante. Si le but est d'effacer des lignes entières, Filtrer les lignes est plus simple qu'une expression régulière. Pour découper un texte en phrases, le critère « Fin de phrase » de Ajouter des sauts de ligne (découper) est plus sûr.

L'ordre compte

Vous pouvez placer plusieurs étapes de rechercher et remplacer dans un pipeline ; elles s'appliquent de haut en bas. Le résultat d'une étape est l'entrée de la suivante : il faut souvent nettoyer les espaces d'abord pour que le motif corresponde. En plaçant Supprimer les espaces en bordure et Réduire les espaces et tabulations répétés avant, les motifs restent simples.

Check-list

  • Pour les motifs par ligne, utilisez ^ et $.
  • Pour ne pas déborder sur la ligne suivante, utilisez [ \t] au lieu de \s.
  • Vérifiez le résultat ; s'il est faux, désactivez l'étape et corrigez le motif.

Dernière mise à jour: 2026-09-23