web-dev-qa-db-fra.com

Utilisation de recherche/remplacement générique dans Notepad ++

Voici mon problème: Dans un fichier .txt, je dois trouver et remplacer des milliers d'instances de syntaxe comme celle-ci:

(see (a053007djfgspwdf))

ou

(voir (a053007djfgspwdf) et (a54134xsedgeg))

ou

(voir (a053007djfgspwdf), (a9554xsdfgsdfg) et (a54134xsedgeg))

Il y a beaucoup de variété entre les chaînes de début (voir (a et la fin)) . Cela peut-il être configuré dans Notepad ++ en utilisant regex? Si oui, comment ferais-je cela? Merci!

15
Michael Tuck

Oui il peut! Notepad ++ dispose d'un mode de recherche RegEx que vous pouvez sélectionner pour tous vos besoins de remplacement RegEx.

L'exemple ci-dessous est un remplacement de base pour tout ce qui est entre (see (a...)) à l'exception d'un saut de ligne. Vous devrez peut-être modifier le RegEx ou écrire le vôtre pour répondre à vos besoins. Voici un excellent endroit pour vous aider à expérimenter.

RegEx: \(see \(a.+\)\)

Chaînes correspondantes:

(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))


Replace (see (a...)) with replacement

14
one.time

Désolé, je trouve d'autres réponses compliquées. (Aucun manque de respect vis-à-vis des affiches originales.)

Comme cela apparaît toujours comme le premier résultat de recherche, je vais l'ajouter dans:

  1. Ouvrez le dialogue recherche/remplacement (CTRL+F puis l'onglet de remplacement)
  2. Cochez "Expression régulière" dans le bas
  3. Utilisez. * Comme caractère générique

Par exemple, je voulais supprimer toutes les occurrences de abp = "1314", abp = "1313", abp = "1312", etc. (les nombres sont tous différents, ce qui explique pourquoi vous souhaitez un caractère générique pour les supprimer).

Dans le dialogue de remplacement:

Trouver dans quoi: abp=".*"
Remplacer par:

(Vous remplacez quoi que ce soit dans ces citations sans rien pour vous en débarrasser)

Source: https://www.organicweb.com.au/17226/general-technology/notepad-wildcard/

12
SweetSuzie

Essayez ce modèle: \(see \(a(.*)\) et assurez-vous que ". Correspond à newline" décoché et "bouclé" cochée.

1
ethmz

Certains d'entre eux étant trop approfondis pour que je puisse les comprendre, laissez-moi vous montrer ce que j'ai fait après avoir lu toutes ces solutions et davantage pour enfin mieux comprendre. (c'est une approche simple, peut-être pas la meilleure)

Je voulais supprimer tous mes figure éléments sur l'ensemble de la page Web. Figure 2.1, Figure 1.1, ect.

C'était:

<p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>

Je voulais que ça se termine:

 <p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar</p>

Mais chacun

avait un numéro de figure différent, donc je l'ai utilisé dans le texte sublime 2.

  1. ctrl H
  2. cliquez sur le symbole ". *" en bas à droite de Sublime text 2, (regex)
  3. <br><b>Figure.*</b> tapé
  4. remplacer par: -left blank

Cela a remplacé toutes mes instances par des chiffres. remarquez que j’ai utilisé. * où les chiffres seraient J'espère que cela t'aides.

1
Jim Schwetz

Le regex} _ dont vous auriez besoin est:

\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)

Par exemple:

enter image description here

En sélectionnant Tout rechercher dans le document actuel , le résultat serait:

enter image description here

Vous pouvez simplement utiliser Remplacer selon vos besoins.

Si vous souhaitez également inclure la variable a dans l'expression régulière, vous pouvez utiliser:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
0
Roney Michael