[Notepad++] Makro erstellen, suchen-löschen innerhalb von HTML-tags

lagom

Cadet 2nd Year
Registriert
Okt. 2014
Beiträge
18
Hallöchen,

erst einmal entschuldigung für mein Unwissen, zwar kann ich mehr als meinem Laptop ein- und ausschalten, doch als "Experte" oder "Profi" bei Weitem nicht bezeichnen. :rolleyes:

Worum geht's?
Folgendes: Ich habe ziemlich viele Treffer aus einer Korpussuche, die ungefähr so aussehen:

A09 bleiben, der sich für die Bereitstellung von Raum für Kunst und Kultur einsetzt.
A09 man geplant, den Neubau im Jahr 2010 in Betrieb zu nehmen, daher auch der Name des
Nun benötige ich eine Liste aller fettgedruckter Wortgruppen, um diese danach nach Häufigkeit mit Trefferanzahl zu sortieren.

Deswegen habe ich das Dokument als html abgespeichert und in Notepad++ geöffnet. Jedoch komme ich nun nicht weiter.
Ich möchte nun gerne alles was nicht innerhalb von <b></b> steht löschen, um eine Liste zu bekommen.
Meine kläglichen Versuche ein entsprechendes Makro anzulegen sind bisher gescheitert. Es passiert einfach nicht das, was passieren soll. Über Hilfe hierbei wäre ich schonmal sehr dankbar.

Beim nächsten Schritt - die Liste nach Häufigkeit zu sortieren, inklusive der Anzahl der Treffer - habe ich noch weniger Ahnung, wie ich vorgehen soll... :(

Danke für die Mühe!

Grüße,
lagom
 
Hi.

Zunächst mal wirst du hier hören, dass Regex für sowas nicht gemacht sind, da man mit Regex kein HTML parsen kann. Was auch so ist.

Da du hier ja aber immer nur einfach <b></b> Tags hast und nichts verschachteltes kann man das auch mit Notepad finden, wenn es auch etwas umständlich wird.

Und zwar machst du folgendes:

In Notepad nach
(<b>)([\w,\s]*)(</b>)
suchen und durch
ersetzen. Dann unter Vorkommnisse markieren wieder nach dem gleichen suchen und Lesezeichen setzen anklicken. Nun kannst du im Menü Suchen->Lesezeichen->Zeilen ohne Lesezeichen löschen.
Zum Schluss nochmal Suchen und Ersetzen nach obiger Suchgruppe und ersetzen durch
.

Damit solltest du dann erstmal eine Liste deiner Begriffe haben.
Ergänzung ()

Den zweiten Schritt würde ich schlicht mit Excel machen. Man könnte zwar ein Skript oder irgendwas schreiben, aber v.a. wenn das keine regelmäßige Sache ist, lohnt sich das nicht. Also einfach die durch Schritt 1 erhaltene Liste in Excel laden und dann eine Spalte daneben mit =ZÄHLENWENN(A:A;A1) nebenan, die Spalte nochmal kopieren und nur die Inhalte einfügen und dann einfach Duplikate entfernen und nach der Häufigkeitenspalte sortieren.
 
Danke für die schnelle Hilfe!

Wenn ich (<b>)([\w,\s]*)(</b>) in der Suche eingebe, findet er keinerlei Treffer, was ja eigentlich nicht sein kann.

Ein Auszug aus meiner HTML:

<p class=MsoNormal><span style='font-size:8.0pt;font-family:"Courier New"'>A09*
Schnee und Kälte die Strassen vielerorts <b>im Appenzellerland in</b> eine
Schlittel-, wenn</span></p>

Woran kann das nun liegen?
 
Hast du auch den Haken auf Regular Expressions gestellt?
 
simpsonsfan schrieb:
Hast du auch den Haken auf Regular Expressions gestellt?

Nein. :rolleyes: Danke!

Jetzt findet er Treffer, sieht dann nach dem ersten Suchen/Ersetzten so aus:

man geplant, den Neubau im Jahr 2010 <b>in Betrieb zu</b> nehmen, daher auch

Im nächsten Schritt passiert genau das Gegenteil. Wenn ich nach (<b>)([\w,\s]*)(</b>) suche und durch $2 ersetze, bleibt mein Kontext stehen und die fettgedruckten Ausdrücke verschwinden. :confused_alt: Also genau das Gegenteil von dem, was ich wollte.
 
Wie jetzt? Die \n fügen eigentlich eine neue Zeile ein, welche dann mit einem Lesezeichen markiert wird, sodass die restlichen Zeilen mit der Funktion Zeilen ohne Lesezeichen löschen gelöscht werden können. Und dann im Anschluss willst du ja wohl noch die <b>-Tags entfernen, das ist das zweite Suchen und ersetzen.
 
Nach dem ersten Suchen/Ersetzen wird mir sowas ausgespuckt:

<b>Im Anschluss an</b> ein Bürogebäude mit Schauraum</span></p>
<b>Im Zusammenhang mit</b> der Umnutzung des</span></p>
Es handelt sich um eine Pilotfiliale, die <b>in Bezug auf</b> Nachhaltigkeit
bleiben, der sich für die Bereitstellung <b>von Raum für</b> Kunst und Kultur
man geplant, den Neubau im Jahr 2010 <b>in Betrieb zu</b> nehmen, daher auch
Die Kosten dürften sich <b>ohne Hotel auf</b> einen tiefen zweistelligen</span></p>

Also eigentlich noch zu viele Informationen, weil auch das, was zwischen </b> und <b> steht, erhalten bleibt.
 
Werden also keine Zeilenumbrüche eingefügt? Beim ersten Ersetzen wird auch noch nichts gelöscht, das Löschen erfolgt erst durch Zeilen ohne Lesezeichen löschen.

Wenn bei dir die Zeilenumbrüche nicht funktionieren, stimmt irgendwas mit deinem Notepad nicht, welche Version hast du?
 
Beim Ersetzen hängt sich das Programm immer mal wieder auf. Ich hatte gerade auch schon kurzzeitig so eine Liste, wie ich sie wollte, aber beim nächsten Mal hängt er sich wieder auf. Die über 9000 Treffer scheinen das Programm wohl etwas zu überfordern...
 
Schon möglich, dann müsstest du entweder andere Programme testen oder die Datei erstmal in kleinere Stücke aufspalten.
 
Ja, aber ich bin erstmal froh, dass es so funktioniert. Danke für die kompetente Hilfe.
 
Bitte. Gut, wenn es jetzt erstmal klappt.
 
Zurück
Oben