Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?

Neue Frage »

Auf diesen Beitrag antworten »
Dani Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?

Hallo zusammen, ich habe ca. 10 Dateien mit Notepad++ geöffnet.

In den Dateien taucht jeweils derselbe Tag, nur mit unterschiedlichen Texten dazwischen, auf.

z.B.
Datei 1:
<mso:name msdt:dt="string">Max Mustermann</mso:name>
Datei 2:
<mso:name msdt:dt="string">Mia Musterfrau</mso:name>
Datei 3:
<mso:name msdt:dt="string">Moritz Musterherr</mso:name>
...

In Notepad++ möchte ich nun alle diese Tags finden und den Text dazwischen mit einem einheitlichen Text austauschen.

Finden möchte ich alle
<mso:name msdt:dt="string">*</mso:name>

und ersetzen durch
<mso:name msdt:dt="string">Nachname, Vorname</mso:name>

Es sollen also in den Dateien bei diesem Tag keine unterschiedlichen Namen mehr drin stehen, sondern einheitlich der Text "Nachname, Vorname".

Ist das mit Notepad++ möglich?
Evtl. mit RegEx?
Wenn ja, wie?
Oder habt ihr mir einfachere Tipps / Programme, mit denen das funktioniert?

Vielen Dank für eure Hilfe

Beste Grüße
Dani
 
Auf diesen Beitrag antworten »
eulerscheZahl

Suche mal danach:
code:
1:
<mso:name msdt:dt="string">.*</mso:name>

notepad++ habe ich nicht installiert, um das zu testen. Aber mit gedit hat es geklappt, also bin ich zuversichtlich.
Auf diesen Beitrag antworten »
Dani

Hallo "eulersche Zahl", vielen Dank für deine super schnelle Antwort :-)

Das Suchen klappt wunderbar, solange kein Zeilenumbruch im Text ist, also

<mso:name msdt:dt="string">Moritz
Musterherr</mso:name>

Wie kann man solche Situationen noch mit abdecken?

Und wie wäre es, wenn statt normalem Text noch Sonderzeichen eingefügt wären, also z.B.

<mso:name msdt:dt="string">Moritz / Mia;
#Musterherr/Musterfrau</mso:name>

Danke dir

Gruß
Dani
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
<mso:name msdt:dt="string">[ a-zA-Z\r\n]*</mso:name>
 
Auf diesen Beitrag antworten »
Dani

Habe es einmal mit der Suchfunktion "Extended (\n, \r, \t, \0, \x...)" probiert und einmal mit der Suchfunktion "Regular expression" sowie "Regular expression" inkl. ". matches newline"

Das scheint irgendwie nicht zu funktionieren, aber vielleicht weil auch Tags dabei sind, in denen Sonderzeichen und Zahlen mit im Text stehen.

z.B.

<mso:name msdt:dt="string">Moritz-0 / Mia-1;
#Musterherr-0/Musterfrau-1</mso:name>

Sorry, mache es schon wieder komplizierter geschockt
Auf diesen Beitrag antworten »
eulerscheZahl

Schreibe die Zeichen einfach mit in die Klammer rein:
<mso:name msdt:dt="string">[ a-zA-Z\r\n0-9;#/-]*</mso:name>
Kann gut sein, dass es einfacher geht. Reguläre Ausdrücke können recht viel, ich kann auch nur einen Teil davon.
Auf diesen Beitrag antworten »
Dani

Bei diesem Bsp.

<mso:name msdt:dt="string">Moritz-0 / Mia-1;
#Musterherr-0/Musterfrau-1</mso:name>

findet Notepad++ mit folgender Suche

<mso:name msdt:dt="string">[ a-zA-Z\r\n0-9;#/-]*</mso:name>

Search Mode: Regular expression

nur folgendes:

<mso:name msdt:dt="string">Moritz-0 / Mia-1;
Auf diesen Beitrag antworten »
Dani

Wildcards,

z.B. <mso:name msdt:dt="string">+.+</mso:name>

und die Suchfunktion "Regular expression" inkl. ". matches newline"

findet für folgendes Bsp.

<mso:name msdt:dt="string">Moritz-0 / Mia-1;
#Musterherr-0/Musterfrau-1</mso:name>

ebenfalls nur die erste Zeile (nur die erste Zeile wird in den Suchergebnissen angezeigt).

Im Text markiert Notepad++ aber beide Zeilen. (wie zuvor auch schon mit deinem Vorschlag <mso:name msdt:dt="string">[ a-zA-Z\r\n0-9;#/-]*</mso:name>)

Wenn er beim "ersetzen durch" dann auch beide Zeilen verwendet, dann würde alles passen. Test folgt.
Auf diesen Beitrag antworten »
eulerscheZahl

Ich habe jetzt auch mal Windows gestartet.
Bei mir werden beide Zeilen ersetzt.
Auf diesen Beitrag antworten »
Dani

Juhu, bin auch zu gleichem Ergebnis gekommen. Es werden beide Zeilen ersetzt.

Funktioniert mit der Suche (RegEx) nach speziellen Zeichen, wenn man alle kennt, die vorkommen, z.B.
<mso:name msdt:dt="string">[ a-zA-Z\r\n0-9;#/- usw...]*</mso:name>
oder mit Wildcards, z.B.
<mso:name msdt:dt="string">+.+</mso:name> (braucht aber die zusätzliche Einstellung ".matches newline")
oder mit der RegEx Suche mit allen üblichen Tokens, wenn man nicht alle speziellen Zeichen kennt, z.B.
<mso:name msdt:dt="string">[\s\S\w\W\d\D\r\n\t\0]*</mso:name>

Herzlichen Dank

Gott

Bis zum nächsten Mal
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »