Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 12 von 12 Treffern
Autor Beitrag
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
14.04.2016 11:46 Forum: Theoretische Informatik


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
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
14.04.2016 11:16 Forum: Theoretische Informatik


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.
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
14.04.2016 10:58 Forum: Theoretische Informatik


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;
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
14.04.2016 10:34 Forum: Theoretische Informatik


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
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
14.04.2016 10:13 Forum: Theoretische Informatik


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
Thema: Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx?
Dani

Antworten: 9
Hits: 6.446
Text zwischen zwei Tags in Notepad++ ersetzen - evtl. mit RegEx? 14.04.2016 09:48 Forum: Theoretische Informatik


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
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
26.02.2016 11:15 Forum: Theoretische Informatik


Die Konstellation "O"OK" sollte so nicht vorkommen. Von daher schaut das nach der Top Lösung aus :-)

Herzlichen Dank!!!

Gott
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
26.02.2016 09:57 Forum: Theoretische Informatik


Diese hier funktioniert auch, aber es zeigt auch ein Match, wenn mit der RegEx nach weniger als 10 OKs gesucht wird.

(.*?\"OK\"){10}

sprich im Text steht 10x "OK"

folgende RegEx haben ein Match:

(.*?\"OK\")
(.*?\"OK\"){0}
(.*?\"OK\"){1}
(.*?\"OK\"){2}
(.*?\"OK\"){3}
(.*?\"OK\"){...}
(.*?\"OK\"){8}
(.*?\"OK\"){9}
(.*?\"OK\"){10}
--> höher --> kein Match

^([^"]|"[^O])*("OK"([^"]|"[^O])*){10}$ liefert wirklich nur ein Match, wenn auch 10x "OK" im Text steht
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
25.02.2016 18:27 Forum: Theoretische Informatik


So einigermaßen habe ich deine Reg Ex verstanden:

([^O]|O[^K]) --> alles außer OK
* --> und das mit beliebig viel Text
(OK --> bis zum ersten OK
([^O]|O[^K])*){10} --> und dieses OK 10 Mal mit beliebig viel Text ohne OK hinter dem jeweiligen OK

Sprich wenn hinter dem letzten OK nicht beliebig viel Text kommen würde, oder sofort wieder ein OK, dann würde der Code nicht funktionieren?

Was bezweckt denn das ^ ganz zu Beginn und das $ zum Schluss für diesen Code?

Vielen vielen Dank für deine Hilfe!!!
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
25.02.2016 18:13 Forum: Theoretische Informatik


Sorry ;-) Aber manchmal sieht man das erst, wenn man es ausprobiert.

Hab die Reg Ex mal abgeändert:

^([^"]|"[^O])*("OK"([^"]|"[^O])*){10}$

Scheint zu funktionieren, die Anzahl passt und die Reg Ex wirft nur 1 Match, wenn die Anzahl 10 in den geschweiften Klammern steht.

Allerdings schaut die nicht ganz so toll aus. Evtl. gibt es da noch eine andere Lösung, die tatsächlich den kompletten Ausdruck "OK" prüft?

Momentan gibt es nämlich jeweils 1 Match mit folgenden Varianten:

^([^"]|"[^O])*("O([^"]|"[^O])*){10}$
^([^"]|"[^O])*("OK([^"]|"[^O])*){10}$
^([^"]|"[^O])*("OK"([^"]|"[^O])*){10}$
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
25.02.2016 17:48 Forum: Theoretische Informatik


Das schaut schon mal sehr gut aus! Vielen Dank.

Jetzt habe ich festgestellt, dass im Text noch weitere Begriffe sind, die OK beinhalten. Die OKs, die es abprüfen soll, haben davor und danach Anführungszeichen, also "OK"

Kann man das auch noch mit in die Regular Expression einbauchen, dass er nur die OKs mit Anführungszeichen abprüft?

Es soll also bei 10 mal "OK" eine positive Meldung / 1 Match geben.

Vielen Dank im Voraus

Grüße
Thema: Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten
Dani

Antworten: 9
Hits: 6.263
Regulärer Ausdruck - Text muss 10 mal das Wort OK beinhalten 24.02.2016 17:37 Forum: Theoretische Informatik


Meine Frage:
Ein Programm gibt bei einer bestimmten Aktion einen Code aus. In diesem Code muss 10 mal das Word OK stehen, damit die Aktion abgeschlossen werden darf. Gibt es einen Regulären Ausdruck (Regular Expression), die einen Text durchsucht und überprüft, ob genau 10 mal das Wort OK im Text steht? Die OKs sind nicht direkt aneinander gereiht und vor und nach einem OK kann jedes beliebige Zeichen stehen. Ich würde mich freuen, wenn ihr mir weiterhelfen könntet.

Meine Ideen:
(OK)/g
gibt 10 Matches wieder.
Stehen aber nur 9 OKs im Text, gibt es 9 Matches wieder.
Ich benötige aber einen Regulären Ausdruck, der für den Text nur ein OK gibt, wenn 10 mal OK im Text vorkommt.
Zeige Beiträge 1 bis 12 von 12 Treffern