Hallo zusammen,
ich bin immer wieder fasziniert wie schwer es doch ist genau das passende zu finden wenn man etwas sucht was so einfach zu machen wäre. also gut ich fange mal vorne an.
ich habe ein text dokument welches ich mit einem regulären text editor bearbeite (mehrere 1000 zeilen). nun versuche ich krampfhaft text passagen zu suchen und ersetzen, mit der vorgabe das es einen start und einen endzeichen hat. als beispiel:
blah blah blah wichtig blah blah blah { unwichtiger mist, text aber immer anders}
in cpp wäre das ganz simpel zu programmieren: suche ersten { lösche den ganzen mist danach oder ersetze ihn bis du } gefunden hast....
leider scheint kein text editor programmierer auf die gloreiche idee gekommen zu sein diese eig doch schon fertige funktion in sein "search & relpace" eingebaut zu haben oder täusch ich mich da. ich habe diverse hilfe dateien von zig editoren, office anwendungen oder sogar html editoren durch aber nirgends gibt es eine excaption für den "inhalt" der start und endpunkte. ich bin momentan auch nich gewillt mit nur deswegen wieder ein compiler zu installieren und das problem selber an der wurzel zu packen (gebs zu bin recht faul geworden ^^), aber vll wisst ihr mehr wie ich und es gibt eine möglichkeit des speziellen problems und könnt mir weiter helfen ohne das ich letztendlich die gesammte datei von hand bearbeiten muss -.-
vielen dank im voraus
Seite 1 von 1
Search & Replace ... in text dateien
Anzeige
#2
geschrieben 19. März 2011 - 01:26
Keine Sorge, so was gibt's schon. Guck Dir mal reguläre Ausdrücke an. Da gibt's ganze Abhandlungen drüber. Da bastelt man sich dann etwas in der Art (Pseudocode):
Konkret könnte das z.B. so aussehen:
Das findet alle Zeichenketten, die mit start beginnen und ende aufhören und bei denen sich dazwischen eine beliebige Anzahl von Buchstaben, Zahlen oder dem Unterstrich befindet. Es gibt auch andere Zeichenklassen. Da muß man gucken was der jeweilige Editor unterstützt.
<START><BELIEBIGE_ANZAHL_VON_BELIEBIGES_ZEICHEN><ENDE>
Konkret könnte das z.B. so aussehen:
start\w*ende
Das findet alle Zeichenketten, die mit start beginnen und ende aufhören und bei denen sich dazwischen eine beliebige Anzahl von Buchstaben, Zahlen oder dem Unterstrich befindet. Es gibt auch andere Zeichenklassen. Da muß man gucken was der jeweilige Editor unterstützt.
Dieser Beitrag wurde von Mr. Floppy bearbeitet: 19. März 2011 - 01:27
#3
geschrieben 19. März 2011 - 03:07
hm ok, ich arbeite mich da mal durch aber finds dennoch unglaublich kompliziert da iwie kein editor eine ausführliche hilfe datei enthält die vor allem auch das ausspuckt was man sucht. regulärer ausdruck: ja klar könn wir aber wir sagen nich wie -.- sehr hilfreich ^^ dennoch danke shconmal für die schnelle antwort
#4
geschrieben 20. März 2011 - 18:40
Das Problem kenne ich auch, ich habe inzwischen ein Programm gefunden, was das machen kann. Es heißt Text Konverter. Darin kann man mehrere Textdateien gleichzeitig bearbeiten und verschiedene Aktionen damit durchführen (auf der rechten Seite im Programm). Beispielsweise kann man bei der Suchen-Ersetzen-Funktion, wo man auch mehrere Ersetzungen gleichzeitig durchführen kann, angeben ob es sich um einen regulären Ausdruck handelt oder nicht.
Du würdest dann zum Beispiel so etwas eingeben:
Suchen nach: "zeichen zu beginn.*zeichen zum ende"
Und ersetzen mit: "zeichen zu beginnNEUE ZEICHEN IN MITTEzeichen zum ende" - wenn nur die Mitte ersetzt werden soll
Oder erstetzen mit: "NEUE ZEICHEN" - wenn alle Zeichen ersetzt werden sollen
Damit passiert folgendes: Gesucht werden alle Zeichenketten, die die zeichen zu beginn und die zeichen zum ende haben, dazwischen können beliebige Zeichen stehen. Das .* steht für ein beliebiges Zeichen. Die regulären Ausdrücke werden aber auch noch auf der Homepage vom Text Konverter erklärt.
Du würdest dann zum Beispiel so etwas eingeben:
Suchen nach: "zeichen zu beginn.*zeichen zum ende"
Und ersetzen mit: "zeichen zu beginnNEUE ZEICHEN IN MITTEzeichen zum ende" - wenn nur die Mitte ersetzt werden soll
Oder erstetzen mit: "NEUE ZEICHEN" - wenn alle Zeichen ersetzt werden sollen
Damit passiert folgendes: Gesucht werden alle Zeichenketten, die die zeichen zu beginn und die zeichen zum ende haben, dazwischen können beliebige Zeichen stehen. Das .* steht für ein beliebiges Zeichen. Die regulären Ausdrücke werden aber auch noch auf der Homepage vom Text Konverter erklärt.
#5
geschrieben 20. März 2011 - 18:51
Guten Tag.
Korrekt, weil der zutreffende reguläre Ausdruck eben von dem abhängt, was gesucht/ersetzt werden soll. Insofern hat der Ersteller des obigen Beitrages dir durchaus weitergeholfen. Wenn dir die Arbeit mit RegExps zu aufwändig, kompliziert oder einfach nur nicht "vorgekaut" genug ist, ändert das nicht daran, dass seine Antwort a) korrekt und b) am sinnvollsten für das Lösen des von dir geschilderten Problems ist.
Übrigens, noch ein Editor der mit RegExps umgehen kann und für eine Vielzahl weiterer Text-Änderungen schon eine Reihe von "Presets" dabei hat ist Notepad++.
Zitat (GothsSecret: 19.03.2011, 03:07)
hm ok, ich arbeite mich da mal durch aber finds dennoch unglaublich kompliziert da iwie kein editor eine ausführliche hilfe datei enthält die vor allem auch das ausspuckt was man sucht. regulärer ausdruck: ja klar könn wir aber wir sagen nich wie -.- sehr hilfreich ^^ dennoch danke shconmal für die schnelle antwort
Korrekt, weil der zutreffende reguläre Ausdruck eben von dem abhängt, was gesucht/ersetzt werden soll. Insofern hat der Ersteller des obigen Beitrages dir durchaus weitergeholfen. Wenn dir die Arbeit mit RegExps zu aufwändig, kompliziert oder einfach nur nicht "vorgekaut" genug ist, ändert das nicht daran, dass seine Antwort a) korrekt und b) am sinnvollsten für das Lösen des von dir geschilderten Problems ist.
Übrigens, noch ein Editor der mit RegExps umgehen kann und für eine Vielzahl weiterer Text-Änderungen schon eine Reihe von "Presets" dabei hat ist Notepad++.
Thema verteilen:
Seite 1 von 1