Textsuche innerhalb von Dateien mit RegExpr.
Moderators: Hacker, Stefan2, white
Textsuche innerhalb von Dateien mit RegExpr.
Hallo,
ich habe Dateien die ich mittels Reg.Expr. durchsuchen möchte.
Ich habe TXT-Dateien, welche den String "ab" mehrfach enthalten. Also bspw.:
ab ab ab ...
manche aber auch nur
ab ab (den gesuchten String also nur 2, anstatt mehr als 2 mal)
Wenn ich nun folgende Reg.Expr. einsetze
(ab){3,}
sollte mir TC doch eigentlich die Dateien herausfiltern, welche mehr als 2 mal den String "ab" enthalten, oder?
MfG
divejbba
ich habe Dateien die ich mittels Reg.Expr. durchsuchen möchte.
Ich habe TXT-Dateien, welche den String "ab" mehrfach enthalten. Also bspw.:
ab ab ab ...
manche aber auch nur
ab ab (den gesuchten String also nur 2, anstatt mehr als 2 mal)
Wenn ich nun folgende Reg.Expr. einsetze
(ab){3,}
sollte mir TC doch eigentlich die Dateien herausfiltern, welche mehr als 2 mal den String "ab" enthalten, oder?
MfG
divejbba
Der von dir genannte Reguläre Ausdruck wäre passend um nach
zu suchen. Aber für deinen Zweck ist folgende RegEx geeignet:
wodurch gesucht wird nach ab gefolgt von keinem oder einem mehrmals vorkommenden beliebigen Zeichen.
Gruß, Jürgen
Code: Select all
ababab
Code: Select all
(ab.*){3,}
Gruß, Jürgen
Last edited by Juergen on 2006-06-30, 19:10 UTC, edited 1 time in total.
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
Stimmt, daran hatte ich nicht gedacht.divejbba wrote:ACK, aber diese Expression findet bspw. auch "abh".
divejbba wrote:Wie kann ich denn die Expression so anpassen, dass wirklich nur
[Leerzeichen|Zeilenanfang]ab[Leerzeichen|Zeilenende]
gefunden wird?
Code: Select all
(ab\s*){3,}
Regular Expressions sind ja "nicht ganz ohne". Ein sehr hilfreiches Programm ist der Regex Coach.
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
ACK, das funktioniert prima. Ich frage mich nur, warum muss es nichtJuergen wrote:sollte gehen (kleines \s steht für ein Worttrennzeichen, siehe Total Commander-Hilfe zu Regular Expressions).Code: Select all
(ab\s*){3,}
Regular Expressions sind ja "nicht ganz ohne". Ein sehr hilfreiches Programm ist der Regex Coach.
Code: Select all
(ab\s.*){3,}
Und vielen Dank für den Link. Das schaue ich mir auf jeden Fall einmal an.
Liebe Grüße
divejbba
Zwischen den verschiedenen Vorkommen von ab sollen ja nur Worttrennzeichen stehen dürfen (also Leerzeichen, Zeilenumbruch usw.). Der Punkt vor dem * würde danach beliebige andere Zeichen erlauben -- das hatte ich ja zunächst so ähnlich benutzt, und du hattest es richtigerweise bemängelt.divejbba wrote:Ich frage mich nur, warum muss es nichtheißen (mit dem Punkt vor dem *)?Code: Select all
(ab\s.*){3,}
Code: Select all
(ab\s.*){3,}
Code: Select all
ab huhuab huhuab huhu
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
ACK. Alles klar. Danke für den Nachhilfeuntericht. Du hast das schon vollkommen richtig erkannt. Genau das ist wieder nicht erwünschtJuergen wrote:würde also auch Zeichenfolgen finden wie z.B.Code: Select all
(ab\s.*){3,}
was -- soweit ich verstanden habe -- nicht erwünscht ist.Code: Select all
ab huhuab huhuab huhu

Achja Reg.Expr. ... Irgendwann begreife ich das auch noch.
Danke
divejbba
Gern geschehen.
Hier ist noch was zum Abgewöhnen
Also wenn man tiefer in Regular Expressions einsteigt, kann es schon etwas haarig werden ...
Aber auch relativ einfache Regular Expressions können schon recht nützlich sein. Wenn du öfter Regular Expressions benötigst, könntest du dir eine Dokumentation wie die im Total Commander nehmen, dir zu verschiedenen dort angegebenen Mustern Beispiele ausdenken, und diese dann mit dem Regex Coach ausprobieren. Durch die gesammelten Erfahrungen wirst du nach und nach ein Gefühl für Regular Expressions bekommen. Wahrscheinlich gibt es auch irgendwo ein Tutorial im Internet ...
Aber wenn du Regular Expressions nur sehr selten benötigst, wird sich der Aufwand wahrscheinlich nicht lohnen.
Gruß, Jürgen
Hier ist noch was zum Abgewöhnen

Quelle: http://www.usenetverwaltung.org/filter/(.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*_+<.*\w.*@\w+.*\.[a-zA-Z]{2,4}>)|(\w+@\w+.*\.[a-zA-Z]{2,4}_+\(.*[a-zA-Zäöü]{2,}.*_.*[a-zA-Zäöü]{2,}.*\))
Achtung: Leerzeichen innerhalb des regexp-Ausdrucks werden auf dieser Seite durch einen Unterstrich (_) dargestellt. Bitte daran denken, bei der Verwendung wieder Leerzeichen daraus zu machen.
Nein, das ist keine chemische Formel, kein Geek-Code und kein UUEncodeter Text. Es handelt sich einfach um den Versuch, mit regular expressions einen Realnamenfilter aufzubauen.
Also wenn man tiefer in Regular Expressions einsteigt, kann es schon etwas haarig werden ...
Aber auch relativ einfache Regular Expressions können schon recht nützlich sein. Wenn du öfter Regular Expressions benötigst, könntest du dir eine Dokumentation wie die im Total Commander nehmen, dir zu verschiedenen dort angegebenen Mustern Beispiele ausdenken, und diese dann mit dem Regex Coach ausprobieren. Durch die gesammelten Erfahrungen wirst du nach und nach ein Gefühl für Regular Expressions bekommen. Wahrscheinlich gibt es auch irgendwo ein Tutorial im Internet ...
Aber wenn du Regular Expressions nur sehr selten benötigst, wird sich der Aufwand wahrscheinlich nicht lohnen.
Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences