Aller au contenu principal

Rechercher et remplacer du texte — outil gratuit

Recherchez et remplacez du texte avec correspondance simple ou regex, un comptage des correspondances en direct et un aperçu surligné. Prend en charge l'insensibilité à la casse, le mot entier et les rétro-références de groupes de capture regex.

Fonctionne hors ligne une fois chargé
Nettoyages rapides
Entrer un terme de recherche

💡 En mode regex, utilisez des groupes de capture dans Rechercher comme (\d{4})-(\d{2}) et référencez-les dans Remplacer avec $1, $2 — idéal pour reformater des dates, noms ou ID en masse.

Utilisations courantes

  • Rechercher et remplacer du texte en masseRemplacez toutes les occurrences d'un mot ou d'une phrase dans un bloc de texte en une seule fois.
  • Rechercher et remplacer avec les expressions régulièresUtilisez les expressions régulières avec les groupes de capture pour reformater le texte en masse.
  • Rechercher et remplacer dans le codeRenommez rapidement les variables ou réécrivez les modèles dans un extrait.
  • Nettoyer les données désordonnéesSupprimez ou normalisez les caractères superflus, les délimiteurs et le formatage dans les données collées.
  • Remplacer les mots lors de la rédactionÉchangez un mot répété ou renommez un personnage dans un brouillon.

Comment ça marche

Rechercher et remplacer s'exécute entièrement dans votre navigateur avec le moteur RegExp intégré de JavaScript — sans bibliothèque, sans serveur, sans envoi de fichier. Le texte est traité localement dès que vous tapez, avec String.prototype.matchAll pour compter et String.prototype.replace pour substituer.

  1. 1
    Motif compilé en RegExp
    Pendant que vous tapez, le terme recherché est compilé en RegExp JavaScript avec un anti-rebond de 150 ms afin que les motifs pathologiques ne figent pas l'onglet à chaque frappe. En mode texte brut, chaque métacaractère d'expression régulière est d'abord échappé, les points et crochets littéraux sont donc traités comme des littéraux. Activer le mode Regex laisse passer votre motif tel quel. Le mode mot entier enrobe le motif dans des ancres de limite de mot \b(?:...)\b, et le mode insensible à la casse ajoute le drapeau i.
  2. 2
    Une seule passe matchAll compte et surligne
    Un seul appel matchAll sur le texte avec anti-rebond produit chaque objet de correspondance. Le nombre de correspondances est lu directement à partir de la longueur de ce tableau. Pour les textes de moins de 200 000 caractères, un aperçu surligné est construit en parcourant les décalages de correspondance et en enrobant chaque résultat dans une balise <mark> — l'échappement HTML est appliqué aux segments de texte brut avant l'insertion, pas après, afin que les correspondances contenant &, < ou > soient traitées correctement.
  3. 3
    Remplacer par du texte littéral ou des références arrière à des groupes de capture
    Le résultat est produit par String.prototype.replace avec le drapeau global, remplaçant toutes les correspondances à la fois. En mode texte brut, tout $ dans la chaîne de remplacement est doublé en $$ afin que des caractères comme $& et $1 soient insérés tels quels plutôt qu'interprétés comme des références arrière. En mode Regex, $1, $2, etc. fonctionnent comme des substitutions standard de groupes de capture JavaScript.
  4. 4
    Copier ou télécharger le résultat
    Le texte réécrit apparaît dans une zone de texte en lecture seule pendant que vous tapez. La copie utilise l'API navigator.clipboard.writeText du navigateur. Le téléchargement construit un Blob de type text/plain de façon synchrone et déclenche un enregistrement local — rien ne quitte jamais votre appareil.

Guide

Exemple détaillé

Imaginons une liste de dates écrites avec l'année en premier et que vous ayez besoin du jour en premier. Collez « Invoice 2026-11-04 due 2026-12-15 » dans « Votre texte », cochez « Expression régulière », tapez (\d{4})-(\d{2})-(\d{2}) dans « Rechercher » et $3/$2/$1 dans « Remplacer par ». La ligne sous les zones indique « 2 correspondances trouvées », les deux dates sont surlignées et le « Résultat » affiche « Invoice 04/11/2026 due 15/12/2026 ». Si la case est décochée, le même texte est recherché littéralement : une recherche de . dans a.b.c trouve 2 correspondances (les points), alors qu'avec la case cochée elle en trouve 5, car . signifie alors n'importe quel caractère. Le nettoyage rapide « Réduire les espaces multiples » transforme « a b c d » en « a b c d » (3 correspondances).

Quels réglages utiliser, et les limites

  • Commencez par du texte brut. Quand « Expression régulière » est décochée, ce que vous tapez dans « Rechercher » est cherché exactement tel quel, et un $ dans « Remplacer par » est inséré comme un simple signe dollar. Cochez la case uniquement quand vous avez besoin de motifs comme des chiffres, des parties optionnelles ou des groupes.
  • Vérifiez les options de casse et de mot entier. La recherche est sensible à la casse sauf si « Insensible à la casse » est coché, donc « chat » ne trouve pas « Chat ». « Mot entier » empêche « chat » de correspondre dans « achat » et « chaton ». Cela fonctionne aussi pour les mots accentués comme café et pour les textes en chinois et en japonais, où chaque limite de caractère compte comme une limite de mot. Dans « chat achat Chat chaton chat. », une recherche simple de chat trouve 4 occurrences, et insensible à la casse plus mot entier en trouve 3.
  • En mode regex, faites attention aux ancres de ligne. Les motifs utilisent la syntaxe des expressions régulières JavaScript. Il n'y a pas d'option multiligne, donc ^ et $ correspondent uniquement au début et à la fin de l'ensemble du texte, pas de chaque ligne, et . ne franchit pas un saut de ligne. Pour ancrer à chaque ligne, utilisez (?<=^|\n) pour un début de ligne et (?=\r?\n|$) pour une fin de ligne. Les groupes de capture dans « Rechercher » sont rappelés par $1, $2 dans « Remplacer par ».
  • Utilisez les nettoyages rapides. Sous « Nettoyages rapides » se trouvent dix préréglages en un clic : « Redresser les guillemets doubles », « Redresser les guillemets simples », « Réduire les espaces multiples », « Supprimer les sauts de ligne », « Tabulations en espaces » (quatre espaces), « Supprimer les espaces en fin de ligne », « Supprimer les lignes vides », et trois pour les textes en chinois et japonais qui convertissent les caractères à pleine chasse, convertissent la ponctuation en pleine chasse et suppriment les espaces entre les caractères. Un préréglage remplit les champs Rechercher et Remplacer par et coche « Expression régulière ». Les deux préréglages qui convertissent des caractères arrêtent la conversion dès que vous modifiez l'un des deux champs.
  • Chargez un fichier au lieu de coller. « Charger un fichier texte » ouvre les fichiers .txt, .csv, .log et .md, ou d'autres fichiers texte, et les lit dans votre navigateur. Un fichier qui semble binaire est refusé, et un fichier d'un type clairement différent, comme un DOCX ou un PDF, est rejeté avec un message indiquant son type. « Télécharger .txt » enregistre le résultat sous le nom et l'extension du fichier d'origine, ainsi commandes.csv reste commandes.csv ; pour un texte collé, le fichier s'appelle find-replace-result.txt.
  • Attendez-vous à une pause sur un très long texte. Les résultats se mettent à jour environ 0,15 seconde après que vous avez arrêté de taper, 0,35 seconde une fois que le texte dépasse 200 000 caractères et 0,7 seconde au-delà de 1 000 000. Au-dessus de 200 000 caractères, l'aperçu surligné est désactivé et la page indique « L'aperçu en surbrillance est désactivé pour les très longs textes — le résultat ci-dessous est toujours à jour. » Le nombre de correspondances et le résultat continuent de fonctionner. L'outil ne vérifie pas lui-même la taille du fichier, donc un très gros fichier est limité par la mémoire de votre navigateur.

Problèmes courants et comment les résoudre

Il indique « Expression régulière invalide ».
Votre motif n'est pas une syntaxe d'expression régulière valide. Cela arrive généralement quand « Expression régulière » est coché alors que vous cherchez un texte ordinaire contenant des symboles comme ( [ * + ? ou une barre oblique inverse. Dans Chrome, par exemple, C++ donne « Nothing to repeat », [abc donne « Unterminated character class » et une parenthèse ( seule donne « Unterminated group ». Décochez la case pour rechercher le texte littéralement, ou placez une barre oblique inverse devant chaque symbole, comme dans C\+\+. Ouvrez « Détails » pour voir le message propre au navigateur ; sa formulation varie selon le navigateur et est affichée en anglais.
Il indique « Impossible de lire ce fichier. Veuillez choisir un fichier texte brut (.txt, .csv, .log, .md). »
Le fichier semble binaire : ses 4 096 premiers caractères contiennent un caractère NUL, comme dans un fichier Word, Excel ou PDF renommé en .txt, ou le navigateur n'a pas pu le lire. Ouvrez l'original dans son programme d'origine et copiez le texte, ou enregistrez-le d'abord en texte brut ou en CSV. Un fichier d'un type clairement différent est généralement refusé plus tôt, avec un message comme « rapport.docx est un fichier DOCX, que cet outil ne peut pas ouvrir. »
Il indique « 0 correspondance trouvée » alors que le texte est clairement présent.
Vérifiez, dans cet ordre : la recherche est sensible à la casse sauf si « Insensible à la casse » est coché ; « Mot entier » est coché et le texte se trouve à l'intérieur d'un mot plus long ; « Expression régulière » est coché et un caractère comme . ou ( agit comme un motif ; ou les espaces, tabulations et sauts de ligne dans votre texte ne sont pas ceux que vous avez tapés. Le décompte se met à jour une fraction de seconde après l'arrêt de la frappe, alors attendez un instant après une modification.
Le remplacement affiche $1 ou $& tel quel au lieu du texte correspondant.
Les références comme $1 ne fonctionnent que si « Expression régulière » est coché, et seulement si « Rechercher » contient un groupe correspondant entre parenthèses, par exemple (\d+). Si la case est décochée, chaque $ est inséré exactement comme il a été tapé. Si le motif n'a pas de premier groupe, JavaScript laisse également $1 comme texte brut.
J'ai tapé \n dans « Remplacer par » et j'ai obtenu une barre oblique inverse et un n au lieu d'un saut de ligne.
« Remplacer par » est une zone monoligne et ne transforme pas \n en saut de ligne, donc elle insère les deux caractères. Dans « Rechercher », avec « Expression régulière » coché, \n et \r?\n correspondent bien aux sauts de ligne, ce qui permet aux fonctions « Supprimer les sauts de ligne » et « Supprimer les lignes vides » de fonctionner. Un saut de ligne ne peut pas être saisi dans le champ de remplacement, donc pour ajouter des sauts de ligne, utilisez un éditeur de texte qui le permet.

Comment il se compare

Un traitement de texte ou un éditeur de code parcourt les correspondances une par une, modifie le document sur place, peut travailler sur de nombreux fichiers et offre une fonction d'annulation. Cette page fait l'inverse : elle remplace chaque correspondance en une seule fois dans une copie de votre texte, affiche d'abord un décompte en direct et les correspondances surlignées, et laisse votre original dans la première zone jusqu'à ce que vous le modifiiez. Ses expressions régulières sont celles de JavaScript, qui diffèrent dans le détail des variantes d'autres éditeurs et outils en ligne de commande. Par exemple, les groupes nommés s'écrivent (?<name>...) et non (?P<name>...), il n'y a pas d'ancres par ligne, et un saut de ligne ne peut pas être saisi dans le champ de remplacement. Cela convient à un bloc de texte collé ou à un fichier log ou CSV ; pour un dossier entier de fichiers, utilisez un éditeur ou un script.

Outils associés

Questions fréquemment posées