Verwenden von Platzhaltern zum Suchen / Ersetzen in Notepad ++


17

Hier ist mein Problem: In einer TXT-Datei muss ich Tausende von Syntaxinstanzen wie die folgende suchen und ersetzen:

(siehe (a053007djfgspwdf))

oder

(siehe (a053007djfgspwdf) und (a54134xsedgeg))

oder

(siehe (a053007djfgspwdf), (a9554xsdfgsdfg) und (a54134xsedgeg))

Es gibt viel Abwechslung zwischen den Anfangs- Textzeichenfolgen (siehe (a und das Ende )) . Kann dies in Notepad ++ mit Regex eingerichtet werden? Wenn ja, wie würde ich das machen? Vielen Dank!

Antworten:


17

Sorry Leute, ich finde einfach andere Antworten kompliziert. (Keine Respektlosigkeit gegenüber den Originalplakaten.)

Da dies immer als erstes Suchergebnis angezeigt wird, füge ich Folgendes hinzu:

  1. Öffnen Sie den Suchen / Ersetzen-Dialog ( CTRL+ Fdann die Ersetzen-Registerkarte)
  2. Kreuzen Sie "Regular Expression" unten an
  3. Verwenden Sie. * Als Platzhalter

Zum Beispiel wollte ich alle Instanzen von abp = "1314", abp = "1313", abp = "1312" usw. entfernen (im Grunde sind die Zahlen alle unterschiedlich, weshalb Sie möchten, dass ein Platzhalter sie entfernt).

Im Ersetzen-Dialog:

Suchen in was: abp=".*"
Ersetzen durch:

(Sie ersetzen alles in diesen Anführungszeichen durch nichts, um es loszuwerden.)

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


15

Ja, kann es! Notepad ++ verfügt über einen RegEx-Suchmodus, den Sie für alle Ihre RegEx-Ersatzanforderungen auswählen können.

Das folgende Beispiel ist ein grundlegender Ersatz für alles dazwischen, (see (a...))mit Ausnahme eines Zeilenumbruchs. Möglicherweise müssen Sie den RegEx ändern oder Ihren eigenen RegEx schreiben, um Ihren Anforderungen zu entsprechen. Hier ist ein großartiger Ort, um Ihnen beim Experimentieren zu helfen.

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

Passende Saiten:

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


Ersetzen Sie (siehe (a)) durch Ersetzen


Vielen Dank! Es wurden die Instanzen des ersten Beispiels gefunden (siehe (a053007djfgspwdf)) , die anderen jedoch nicht. Trotzdem ein guter Start. Ich werde damit spielen, um zu sehen, was ich sonst noch tun kann. Wenn Sie weitere Vorschläge haben, würde ich mich sehr darüber freuen. Danke noch einmal.
Michael Tuck

Haben Sie auf " Alle ersetzen" geklickt oder weiter auf " Ersetzen" geklickt, um durch Übereinstimmungen zu blättern, die mit " Weitersuchen" vergleichbar sind ? Beginnt (see (aund endet der gesuchte Text nur mit ))? Wenn Sie Zeichenfolgen haben, die mit einer einzelnen Klammer enden, können Sie die letzte \)in die Erfassungsgruppe umwandeln (\)|), um Zeichenfolgen zuzuordnen, die mit ))"oder" enden ).
Einmalig

Versuchte ein paar Ersetzungen, dann Alle ersetzen. Danach hat der Suchbegriff nichts gefunden. Der Text für alle ist: (siehe einen abwechslungsreichen Text )) Keine Zeichenketten mit einfacher Klammer, außer vielleicht Tippfehler.
Michael Tuck

Ich habe meine Antwort mit einem alternativen RegEx aktualisiert, der mit (\(see \(a|\(a)([^\)]+)\)(\)|)den Zeichenfolgen in Ihrer Frage übereinstimmt.
einmalig

LOL Sie haben Ihre Antwort aktualisiert, während ich meine Antwort bearbeitete. Ich werde das neue versuchen.
Michael Tuck

1

Probieren Sie dieses Muster aus: \(see \(a(.*)\)und stellen Sie sicher, dass ".matches newline" deaktiviert und "wrap around" aktiviert ist.


1

Einige davon waren zu tiefgreifend, als dass ich sie hätte verstehen können. Lassen Sie mich Ihnen zeigen, was ich nach dem Lesen all dieser Lösungen und mehr getan habe, um endlich ein besseres Verständnis zu erlangen. (Dies ist ein einfacher Ansatz, möglicherweise nicht der beste)

Ich wollte alle meine Figurenelemente auf der gesamten Webseite entfernen . Abbildung 2.1, Abbildung 1.1, ect.

Es war:

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

Ich wollte, dass es endet:

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

Aber jeder

hatte eine andere Abbildungsnummer, also benutzte ich diese im erhabenen Text 2.

  1. Strg H
  2. Klicken Sie auf das Symbol ". *" rechts unten in Sublime Text 2 (regulärer Ausdruck).
  3. getippt <br><b>Figure.*</b>
  4. ersetzen durch: -links leer

Dies ersetzte alle meine Instanzen durch Zahlen darin. Beachten Sie, dass ich. * verwendet habe, wo die Nummern gewesen wären. Hoffe das hilft.


0

Der genaue reguläre Ausdruck, den Sie benötigen würden, ist:

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

Beispielsweise:

Bildbeschreibung hier eingeben

Bei Auswahl von Alle in aktuellem Dokument suchen lautet das Ergebnis:

Bildbeschreibung hier eingeben

Sie können stattdessen einfach Ersetzen nach Bedarf verwenden.

Wenn Sie das aauch in den regulären Ausdruck aufnehmen möchten , können Sie Folgendes verwenden:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.