web-dev-qa-db-fra.com

Notepad ++ Remplacez la correspondance regex pour le même texte plus le caractère ajouté

J'ai un fichier avec du texte et des nombres d'une longueur de 5 (c'est-à-dire 12000, 11153, etc.). Je veux ajouter tous ces chiffres avec un 0. Donc, 11153 devient 111530. Est-ce possible dans Notepad ++?

Je sais que je peux trouver tous les nombres avec la regex suivante: [0-9]{5}, mais comment puis-je les remplacer par le même nombre, plus un 0 ajouté?

Dans la boîte de remplacement, j'ai essayé les choses suivantes:

  • [0-9]{5}0 - Ce qu'il a pris à la lettre, donc 11153 a été remplacé par [0-9]{5}0
  • \10 - J'ai lu quelque part que \1 prendrait le match, mais cela ne semble pas fonctionner. Ceci remplacera 11153 par 0
  • EDIT: \00 - Sur cette base SO réponse Je vois que je dois utiliser \0 au lieu de \1. Cela ne fonctionne toujours pas cependant. Ceci remplacera 11153 avec

J'ai donc l'impression d'être proche du \1 ou \0, mais pas assez près.

54
Kevin Cruijssen

Vous êtes très près de la réponse! Ce que vous avez manqué, c'est un groupe de capture.

Utilisez cette expression rationnelle dans la section "Trouver quoi":

([0-9]{5})

Dans "Remplacer par", utilisez ceci:

\10

Les ( et ) représentent un groupe de capture. Cela signifie essentiellement que vous saisissez votre numéro, puis le remplacez par le même suivi d'un zéro.

68
CinCout

Tu es très proche. Vous devez ajouter un groupe de capture à votre expression rationnelle en l'entourant de crochets. ([0-9]{5})

Puis utilisez \10 en remplacement. Ceci remplace la correspondance avec le texte du groupe 1 suivi d'un zéro.

5
roblovelock

Vous pouvez utiliser \K pour réinitialiser .

\b\d{5}\b\K

Et remplacez par 0

Voir la démo sur regex101

4
bobble bubble