[REGEX] Alle Zeichen nach einem Zeichen löschen

S

Smartass

Gast
Hallo Community,

ich möchte in einer Textdatei, die eine folgendermaßen formatierte Liste enthält:

Code:
Aaronovitch Ben - Peter Grant 01 Die Fluesse Von London
Aaronovitch Ben - Peter Grant 02 Schwarzer Mond Ueber Soho
Aaronovitch Ben - Peter Grant 03 Ein Wispern Unter Baker Street
Abrahams Peter - Ausradiert
Abrahams Peter - Gerissen
Abrahams Peter - Verblendet

[ Anm. Jede Zeile enthält immer nur einen Bindestrich ]

per Notepad++ alle Zeichen nach dem Bindestrich entfernen. Ergebnis wäre:

Code:
Aaronovitch Ben
Aaronovitch Ben
Aaronovitch Ben
Abrahams Peter
Abrahams Peter
Abrahams Peter

Mir ist bekannt, das dies natürlich mit einem CSV-Editor leicht zu realisieren ist -
würde dies aber gerne professioneller, also ohne zusätzliche Software erreichen.

Schonmal Danke fürs lesen

Smartass
 
spontan:
nppstuff.jpg

aha, geht nach genauerem Betrachten der Notepad++-regex-flavour einfacher mit:
nppstuff2.jpg
 
Zuletzt bearbeitet:
Das wäre der Regex fürs Filtern:
Code:
\s-\s[\w\s]+$
 
Zuletzt bearbeitet:
Äääähm habs angepasst weil da was gefehlt hat wie du richtig bemerkt hast ;)
 
Hallo blöderidiot,

die Eingabe von

Code:
^([^-]*)-([^-]*)$
unter -Suchen nach- bzw.

Code:
\1
unter -Ersetzen durch- führt bedauerlicherweise nur zu folgender Fehlermeldung:

Code:
The regular expression to search is formed badly

Trotzdem schonmal Danke für Deine Mühe

Smartass
 
Mein Regex funktioniert wie gewünscht. Bei Notepad++ reguläre Ausdrücke aktiviert?
 
Hallo blöderidiot,

die Eingabe des zweiten Regulären Ausdrucks führt zu:

x.png

Smartass
 
Zuletzt bearbeitet von einem Moderator:
Smartass schrieb:
Hallo blöderidiot,
die Eingabe von
Code:
^([^-]*)-([^-]*)$
unter -Suchen nach- bzw.
Code:
\1
unter -Ersetzen durch- führt bedauerlicherweise nur zu folgender Fehlermeldung:
Code:
The regular expression to search is formed badly

Ging bei mir. Hast Du eine ältere Version? Unsichtbare Sonderzeichen mit reinkopiert?

^H und dann den Kram eingeben. "Replace All".
Ging. Version ist 6.3.

nppstuff3.jpg

BTW: der knappere Ausdruck wäre
^([^-]*)-.*$
 
Zuletzt bearbeitet:
Hallo SymA,

Dein regulärer Ausdruck

Code:
\s-\s[\w\s]+$

führt zum erwünschten Ergebnis.

Herzlichen Dank - hoffe mich irgendwann erkenntlich zeigen zu können.

Danke auch nochmals an blöderidiot;-)

Zitat: Ging bei mir. Hast Du eine ältere Version? Unsichtbare Sonderzeichen mit reinkopiert?

Yess. Version 5.7.8 - und werd ich untersuchen - THX

Smartass
 
Zuletzt bearbeitet von einem Moderator:
Code:
cat ${TEXTDATEI} | awk ' BEGIN { FS = " - " } { print $1 } ' >> ${Autorenverzeichnis}

bash.
 
Zuletzt bearbeitet:
Twostone schrieb:
Code:
cat ${TEXTDATEI} | awk ' BEGIN { FS = " - " } { print $1 } ' >> ${Autorenverzeichnis}
bash.

$> perl -F- -lane 'print$F[0]' text.dat

Aaronovitch Ben
Aaronovitch Ben
Aaronovitch Ben
Abrahams Peter
Abrahams Peter
Abrahams Peter


Perl
Ergänzung ()

Smartass schrieb:
Dein regulärer Ausdruck
Code:
\s-\s[\w\s]+$
führt zum erwünschten Ergebnis.
Zitat: Ging bei mir. Hast Du eine ältere Version? Unsichtbare Sonderzeichen mit reinkopiert?
Yess. Version 5.7.8 - und werd ich untersuchen - THX

Das ist es! Vor Version 6 hatte Notepad++ nur "Pseudo-Reguläre" Ausdrücke, seit Version 6 verwendet es PCRE. Erst seit 6.x kann man effizient damit arbeiten.

Siehe auch hier:
So, Notepad++ got updated to v6.0. One of their new features is PCRE (Perl Compatible Regular Expressions).
 
egal ob mit oder ohne PCRE
die Lösungen sind zwar alle richtig, aber alle ziemlich oversized.
ein banales
reg_replace.jpg
tut's vollkommen, sowohl in notepad++, perl als auch mit sed
 
#12 blöderidiot,
zu Deiner Ergänzung von 01:04 Uhr:

Nicht schlecht, Herr Specht.
Die Info wird vermutlich zukünftig so Manchem Leser -inklusive mir- so Einiges an Ratlosigkeit ersparen.


Hallo rumbalotte,
die Eingabe -.* funktioniert - dürfte »die Guru-Version« zur Lösung der Aufgabe sein.

Smartass
 
Zuletzt bearbeitet von einem Moderator: (Code fett formatiert)
rumbalotte schrieb:
ein banales
Anhang anzeigen 425084
tut's vollkommen, sowohl in notepad++, perl als auch mit sed
Hmm, mal sehen:
Original: perl -F- -lane 'print$F[0]' text.dat
Neu: perl -lpe 's/-.*//' text.dat

OK, ist kompakter und schöner, stimmt!
 
Hallo zusammen,

womöglich sehe ich den Wald vor lauter Bäumen nicht - wie bekomme ich denn alle Zeichen vor einem bestimmten Zeichen entfernt?
 
Zuletzt bearbeitet:
Bobby Blixberg schrieb:
womöglich sehe ich den Wald vor lauter Bäumen nicht - wie bekomme ich denn alle Zeichen vor einem bestimmten Zeichen entfernt?

Wo und wie liegen die "Zeichen" vor und was hast Du schon probiert?
 
Es ist eine Textdatei nach folgendem Schema:

Code:
Aaronovitch Ben - Peter Grant 01 Die Fluesse Von London
Aaronovitch Ben - Peter Grant 02 Schwarzer Mond Ueber Soho
Aaronovitch Ben - Peter Grant 03 Ein Wispern Unter Baker Street
Abrahams Peter - Ausradiert
Abrahams Peter - Gerissen
Abrahams Peter - Verblendet

Nur dass ich hier nicht wie der Thread-Ersteller die Zeichen nach dem Minus-Zeichen, sondern die davor entfernen möchte.

Ich habe es u. a. schon so probiert:
Code:
*. -
 

Ähnliche Themen

S
Antworten
3
Aufrufe
1.903
Zurück
Oben