Entfernen Sie die span-Klasse durch Regex in Notepad ++

606
Aman Mittal

Ich habe große Dateien für 1000+ Spannweiten für Seitennummern. Ich möchte die komplette Syntax mit dem Text in notepad ++ durch ein ReGex entfernen. Beispiel,<p>Cillacepro di to tem endelias eaquunto maximint eostrum eos dolorit et laboria estiati<span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>Cillacepro di to tem endelias</p>

Ich würde durch <span class=”pagenum”><a name=”Page_4” id=”Page_4”>[Pg 4]</a></span>"" ersetzen, so dass es das Muster für zwei und drei Ziffern findet. Ich bin neu bei dieser Suche nach Regex-Strings. Daher wäre ich dankbar, wenn mir jemand mit einem Ersatz-String für den gleichen Code helfen könnte. Viele Grüße, Aman Mittal

1
Es ist nicht klar, was Sie suchen und mit dem Sie es ersetzen möchten. Ich schlage daher vor, dass Sie sich dieses Tutorial ansehen (http://docs.notepad-plus-plus.org/index.php/Regular_Expressions). . AFH vor 6 Jahren 0
Hallo, danke für die Antwort. Ich versuche einfach, [Pg 4] durch ein Leerzeichen zu ersetzen . Ich suche nach einem Regex-Suchstring, der alle Seitenzahlen auf einmal entfernt, sodass ich nicht jede Syntax nacheinander manuell entfernen muss. Aman Mittal vor 6 Jahren 0
Ich stelle mir das passende ` . *? `wird ausreichen, da wahrscheinlich nur diese Bereichsklasse die Seitennummerndaten enthält, die Sie entfernen möchten. Beachten Sie, dass `. *?` Mit der Mindestanzahl von beliebigen Zeichen übereinstimmt, um sicherzustellen, dass das `` im Match mit dem gleichen führenden ` ` gekoppelt ist . AFH vor 6 Jahren 1
Vielen Dank, dass Sie sich die Zeit genommen und eine Lösung bereitgestellt haben. Es hat Wunder für mich gewirkt. Ich bin dir zu dankbar. Danke vielmals! Bleib gesegnet! Aman Mittal vor 6 Jahren 0
@AFH Ich wünschte, ich könnte dein Profil mögen und alle wissen lassen, wie großartig du von einer Person bist. Danke vielmals! Aman Mittal vor 6 Jahren 0
@AFH: Es tut mir leid, dass ich dich noch einmal störe. In meinem Projekt habe ich jedoch einen anderen Seitennummernbereich verwendet: [pg 001] Ich habe diesen Code ausprobiert, um sie alle auf einmal zu finden: [pg \ d + \]Es scheint jedoch nicht zu funktionieren. Könnten Sie mir bitte die Fehler bei der Regex-Suche mitteilen? Ich wäre Ihnen sehr verbunden. Aman Mittal vor 6 Jahren 0
Wenn ich nach römischer Zahl suchen möchte - i, ii, iii ... in derselben Regex, wie würde ich dann vorgehen? Aman Mittal vor 6 Jahren 0

2 Antworten auf die Frage

1
alzaj

Entfernen Sie die eckigen Klammern und verwenden Sie die Ziffernkürzel ("/ d"), gefolgt von dem Wiederholungszeichen "+", um die Seitenzahlen abzugleichen:

<span class="pagenum"><a name="Page_\d+" id="Page_\d+">\[Pg \d+\]</a></span> 

Sie können den obigen Regex anhand des folgenden Beispielcodes überprüfen:

placeholdertext<span class="pagenum"><a name="Page_4" id="Page_4">[Pg 4]</a></span>placeholdertext placeholdertext <span class="pagenum"><a name="Page_111" id="Page_111">[Pg 111]</a></span> placeholdertext<span class="pagenum"><a name="Page_222" id="Page_222">[Pg 222]</a></span> 
Vielen Dank, dass Sie sich die Zeit genommen und eine Lösung bereitgestellt haben. Es ist spezifisch für Page 1 und funktioniert nicht für Pg_1, aber wir können die Regex immer anpassen. Vielen Dank für die Hilfe. Ihre Lösung war eine große Hilfe. Ich bin dir zu dankbar. Danke vielmals! Bleib gesegnet! Aman Mittal vor 6 Jahren 0
Bitte! Ein weiterer Vorteil der @ AFH-Lösung: Sein Regex-Abgleich, wenn innerhalb des span-Tags ein Zeilenumbruch erfolgt (Ankreuzfeld "Punkt entspricht Zeilenumbruch" in Notepad ++). Die Lösung von AFH könnte jedoch auch einen Nachteil haben, wenn Ihr span-Tag ein verschachteltes span-Tag enthält. alzaj vor 6 Jahren 0
@alzaj - Ich habe noch nie verschachtelte ` ` Tags gesehen, und obwohl sie erlaubt sind, sind sie bei der Seitennummerierung sehr unwahrscheinlich, es sei denn, die Seitennummer ist die innerste, was meine Übereinstimmungszeichenfolge nicht beeinflusst. Ich hätte das Überprüfen von _` erwähnen sollen. passt zu newline`_: danke darauf hinweisen. AFH vor 6 Jahren 1
@alzaj - Es tut mir leid, Sie wieder zu belästigen. In meinem Projekt habe ich jedoch einen anderen Seitennummernbereich verwendet: [pg 001]Ich habe diesen Code ausprobiert, um sie alle auf einmal zu finden: [pg \ d +]Es scheint jedoch nicht zu funktionieren. Könnten Sie mir bitte die Fehler bei der Regex-Suche mitteilen? Ich wäre Ihnen sehr verbunden Aman Mittal vor 6 Jahren 0
Wenn ich nach römischer Zahl suchen möchte - i, ii, iii ... in derselben Regex, wie würde ich dann vorgehen? Aman Mittal vor 6 Jahren 0
@AFH Bitte, wenn möglich, noch einmal zu helfen. Ich würde mich sehr über Ihre wertvolle Zeit und Ihr Fachwissen freuen. Aman Mittal vor 6 Jahren 0
Mit [this site] (https://regex101.com/) konnte ich feststellen, dass das Problem die eckigen Klammern sind, die eskalieren müssen, um wörtlich abgeglichen zu werden (`\ [` und `\]`); Andernfalls werden sie so behandelt, als würden sie einen Zeichensatz in einer einzelnen Zeichenübereinstimmung begrenzen. Beachten Sie, dass es keine exakte Übereinstimmung für NotePad ++ gibt, aber ich konnte die "Golang" -Funktion verwenden. Bei römischen Zahlen ersetzen Sie einfach \ d + durch `. +`: Dies bedeutet, dass die Möglichkeit besteht, nichtnumerische Seitennummern abzugleichen, aber ich kann mir nicht vorstellen, dass dies passieren würde. Sie könnten die Kriterien mit `[0-9ivxdm] +` einschränken. AFH vor 6 Jahren 2
@AFH Vielen Dank, dass Sie sich die Zeit genommen haben und auf die Frage geantwortet haben. Ich bin Ihnen extrem dankbar, dass Sie mir so sehr geholfen haben. In Bezug auf den regulären Regex funktionierte der Regex nach dem Einfügen der Klammern und nicht nach dem Entfernen des. Außerdem hat Ihr Trick '. +' Für die römischen Zahlen gut funktioniert. So suchen Sie nach [pg ix]`Ich habe diesen Regex verwendet und es hat Wunder gewirkt. \" Pg. + ​​\]` Aman Mittal vor 6 Jahren 0
@AFH Vielen Dank, dass Sie mir geholfen haben. Überwältigt und dankbar! Mögest du immer gesegnet und glücklich bleiben! Aman Mittal vor 6 Jahren 0
1
Aman Mittal

Ich danke @AFH für die Bereitstellung einer generischen Antwort, die sich auch auf Page, Pg und andere Arten beziehen könnte. Ich kann mir vorstellen, dass der Abgleich <span class="pagenum">.*?</span>ausreichend ist, da wahrscheinlich nur diese Bereichsklasse die Seitenzahlendaten enthält, die Sie entfernen möchten. Beachten Sie, dass .*? stimmt mit der Mindestanzahl von beliebigen Zeichen überein und stellt sicher, dass das im Match mit dem gleichen führenden Paar gepaart wird. - AFH vor 12 Stunden

Ich möchte mich auch bei @alzaj für die richtige Richtung bedanken. Danke vielmals! Ich habe meinen Tag und meine Mühe gerettet! Viele Grüße, Aman Mittal