Textsuche innerhalb von Dateien mit RegExpr.

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
divejbba
Junior Member
Junior Member
Posts: 12
Joined: 2006-06-30, 17:14 UTC

Textsuche innerhalb von Dateien mit RegExpr.

Post by *divejbba »

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
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

Der von dir genannte Reguläre Ausdruck wäre passend um nach

Code: Select all

ababab
zu suchen. Aber für deinen Zweck ist folgende RegEx geeignet:

Code: Select all

(ab.*){3,}
wodurch gesucht wird nach ab gefolgt von keinem oder einem mehrmals vorkommenden beliebigen Zeichen.

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
divejbba
Junior Member
Junior Member
Posts: 12
Joined: 2006-06-30, 17:14 UTC

Post by *divejbba »

ACK, aber diese Expression findet bspw. auch "abh". Wie kann ich denn die Expression so anpassen, dass wirklich nur

[Leerzeichen|Zeilenanfang]ab[Leerzeichen|Zeilenende]

gefunden wird?
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

divejbba wrote:ACK, aber diese Expression findet bspw. auch "abh".
Stimmt, daran hatte ich nicht gedacht.
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,}
sollte gehen (kleines \s steht für ein Worttrennzeichen, siehe Total Commander-Hilfe zu Regular Expressions).
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
divejbba
Junior Member
Junior Member
Posts: 12
Joined: 2006-06-30, 17:14 UTC

Post by *divejbba »

Juergen wrote:

Code: Select all

(ab\s*){3,}
sollte gehen (kleines \s steht für ein Worttrennzeichen, siehe Total Commander-Hilfe zu Regular Expressions).
Regular Expressions sind ja "nicht ganz ohne". Ein sehr hilfreiches Programm ist der Regex Coach.
ACK, das funktioniert prima. Ich frage mich nur, warum muss es nicht

Code: Select all

(ab\s.*){3,}
heißen (mit dem Punkt vor dem *)?

Und vielen Dank für den Link. Das schaue ich mir auf jeden Fall einmal an.

Liebe Grüße
divejbba
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

divejbba wrote:Ich frage mich nur, warum muss es nicht

Code: Select all

(ab\s.*){3,}
heißen (mit dem Punkt vor dem *)?
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.

Code: Select all

(ab\s.*){3,}
würde also auch Zeichenfolgen finden wie z.B.

Code: Select all

ab huhuab huhuab huhu
was -- soweit ich verstanden habe -- nicht erwünscht ist.

Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
divejbba
Junior Member
Junior Member
Posts: 12
Joined: 2006-06-30, 17:14 UTC

Post by *divejbba »

Juergen wrote:

Code: Select all

(ab\s.*){3,}
würde also auch Zeichenfolgen finden wie z.B.

Code: Select all

ab huhuab huhuab huhu
was -- soweit ich verstanden habe -- nicht erwünscht ist.
ACK. Alles klar. Danke für den Nachhilfeuntericht. Du hast das schon vollkommen richtig erkannt. Genau das ist wieder nicht erwünscht ;-) .

Achja Reg.Expr. ... Irgendwann begreife ich das auch noch.

Danke
divejbba
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

Gern geschehen.

Hier ist noch was zum Abgewöhnen :)
(.*[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.
Quelle: http://www.usenetverwaltung.org/filter/

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
Post Reply