[BUG] - Fehler bei der Implementierung von Reg.Expr. im TC!

German support forum

Moderators: white, Hacker, Stefan2

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

Post by *divejbba »

Welche Version von TC hast Du denn? Ich benutze 6.54a. Vielleicht gibt es da ja Unterschiede?

Und was hast Du denn genau eingestellt (auch "nur ganze Wörter")?
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

Ich benutze auch die Version 6.54a (unter Windows 98, aber ob das eine Rolle spielt ???). Ich habe nichts weiter gemacht, als den Text aus deinem ersten Posting in diesem Thread in 2 Textdateien zu kopieren. Ich habe das jetzt 3 mal wiederholt, und komme immer zum selben Ergebnis. Ich hatte nur "Reg.Ausdruck (RegEx 2)" angehakt, sonst nichts.
Wenn ich jetzt zusätzlich "nur ganze Wörter" anhake, findet der TC mit dem Suchausdruck (abb\s+){2}. oder (abb\s+){2}[az] bei mir keine der beiden Dateien. :?

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 »

Also das habe ich jetzt auch noch einmal gemacht.
1) Einen Ordner aufgemacht
2) den Inhalt des ersten Postings in 2 Textdateien kopiert
3) Suche mittels '(abb\s+){2}.'
Ergebnis: Beide Dateien werden angezeigt.

Das gleiche habe ich wiederholt mit '(abb\s+){2}[az]'. Gleiches Ergebnis. Beide Dateien werden angezeigt.

Auch bei mir wird gar nichts mehr angezeigt, wenn ich "nur ganze Wörter" ankreuze.

Stimmt das mit Deinen Ergebissen überein?
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

divejbba wrote:Stimmt das mit Deinen Ergebissen überein?
Ja. :)

OT: Jetzt wird "Kroko" gekuckt (ARD). Unbedingt sehenswert!

Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

OK, ich versuche mal das zu erklären. Die Suche geht nach

(abb\s+){2}

Das bedeutet: Die Zeichen "abb" gefolgt von einem Worttrennzeichen - das Ganze 2 mal.

Der Reguläre Ausdruck sagt dabei NICHT, was vor oder nach dem zu findenden Text kommen soll. Deshalb wird einfach nur "abb abb " gefunden, EGAL, ob noch ein drittes "abb " dahinter kommt, oder irgend etwas anderes!

Wenn man das verhindern will, muss man explizit schreiben, was dahinter kommen soll, etwa ein $ für das Zeilenende. Leider kann man mit regulären Ausdrücken nicht schreiben, dass vor und nach dem Ausdruck kein "abb" kommen darf. Was fehlt ist ein expliziter NICHT-Operator über mehrere aufeinanderfolgende Zeichen. es gibt zwar [^a] (alles ausser ein a), aber [^a][^b][^b] ist falsch, weil es z.B. auch abc verbietet. Hier wäre also eine Erweiterung regulärer Ausdrücke erforderlich.

Wozu ist dann ein Operator wie {2} überhaupt gut? Er nützt nur dann, wenn man weiss, was vor und nach den repetierten Zeichen kommt.

Der Ausruck
f (abb\s+){2}b
findet z.B. den ersten String "adf abb abb abb bla" NICHT, ein Ausdruck
f (abb\s+){3}b
jedoch schon.
Author of Total Commander
https://www.ghisler.com
divejbba
Junior Member
Junior Member
Posts: 12
Joined: 2006-06-30, 17:14 UTC

Post by *divejbba »

Mit anderen Worten, es geht nicht mit Reg.Expr. ... Schade.

Aber vielen Dank für Deine Erklärungen.
Juergen
Power Member
Power Member
Posts: 517
Joined: 2003-05-02, 18:19 UTC
Location: Berlin (Germany)
Contact:

Post by *Juergen »

2ghisler(Author):
Danke für die Erklärung, die so gut ist, dass sie fast ohne Änderung in die TC-Hilfe übernommen werden kann. :)
Vorerst habe ich mal im Wiki einen Link hierher gesetzt.

Gruß, Jürgen
My add-ons and plugins for TC: NiftyLink, mbox, Sequences
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Was nützt die schöne Erklärung, wenn schon wieder das wichtigste übergangen wurde? Ist es denn in Ordnung, daß der TC diese Funktionalität nicht bietet, Alternativprogramme wie InfoRapid hingegen schon, durch bloßes Ankreuzen von "nur ganze Wörter"?

Rätselhaft.

Icfu
This account is for sale
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Was hat das mit "nur ganze Wörter" zu tun? "abb abb" ist ja ein ganzes Wort in dem Sinne, dass es vorne und hinten von Worttrennzeichen abgetrennt ist! "abb abb abb" würde also trotzdem gefunden werden. Der RegEx-Standard gibt einfach nicht mehr her...
Author of Total Commander
https://www.ghisler.com
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Du hast Recht, meine Testdateien waren fehlerhaft. Da ich allerdings im gesamten Thread betont habe, daß es in InfoRapid funktioniert, wär's schön gewesen, wenn mich jemand drauf hingewiesen hätte.

Na denn, Fettnäpfchen erfolgreich getroffen.

Icfu
This account is for sale
Post Reply