Hinweise zum neuen Forum
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Komplexe Suche mit regular expression [ERLEDIGT]

Alles rund um Editoren, visuelle Entwicklungshilfen und Form-Designer

Moderator: Moderatoren

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Komplexe Suche mit regular expression [ERLEDIGT]

Beitrag von Markus Walter » Fr, 29. Apr 2011 14:53

Hi,

vielleicht kann mir jemand helfen... Mein Editor (Ed4Win) kann eine komplexe Suche mit Hilfe von regular expressions. Und offenbar nur so...

Ich möchte eigentlich nix kompliziertes - über google wäre es ganz einfach :wink:

Ich möchte im Quelltext das Vorkommen einer Funktion xTest finden, wenn diese mit Parametern aufgerufen wird, aber nicht, wenn sie ohne Parameter aufgerufen wird. Also quasi (in google-Manier): "+xtest - xtest()".

Weiß jemand, wie man sowas mit einer regular expression hinkriegt?
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6734
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Tom » Fr, 29. Apr 2011 15:13

Auch ich würde mich über eine Antwort freuen. MultiEdit unterstützt RegEx ebenfalls, aber ich sitze regelmäßig vor den Erläuterungen und versuche, sie zu verstehen, um dann doch wieder "klassisch" zu suchen. :oops:
Herzlich,
Tom

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2259
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Wolfgang Ciriack » Fr, 29. Apr 2011 17:41

Ich würde es mal mit
test(+[a-z]+)
versuchen.
Viele Grüße
Wolfgang

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Sa, 30. Apr 2011 16:42

Hi,

@Tom: Hm, speziell von Dir hatte ich eine Antwort erhofft, weil Du ja mal in einem Thread speziell die RegEx-Funktion Deines Editors gepriesen hast... :wink:

Code: Alles auswählen

test(+[a-z]+)
@Wolfgang: Der Ausdruck findet z. B. Strings, in denen "test" vorkommt, ausser wen an den String "test" direkt eine Klammer anschliesst... Aber das ist ja nicht das, was ich brauche...

Speziell die Tatsache, dass ich nach Funktionsaufrufen suche und dabei die Klammern eine Rolle spielen, macht das Ganze komplizierter, da Klammern bei RegEx-Ausdrücken gewisse Funktionen haben...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13378
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Martin Altmann » Sa, 30. Apr 2011 17:00

Markus,
dann musst Du die Klammern "escapen"!
Beispiel:

Code: Alles auswählen

test\(+[a-z]+\)
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Sa, 30. Apr 2011 17:04

Hi Martin,

guter Hinweis. Danke. Wenn Du jetzt noch weisst, wie ich quasi negiere (siehe meine obige Anforderung), würde ich Dich in mein Nachtgebet einschließen...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13378
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Martin Altmann » Sa, 30. Apr 2011 17:10

Vielleicht die Zeichen in ^ einschließen... :?:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 12:42

Oh Mann, RegEx ist eine ziemliche Katastrophe, wenn man viel mit "Sonderzeichen" zu tun hat (Klammern, Anführungszeichen, ...)

Warum kann mein Editor nicht eine einfache Notiation wie alle Suchmaschinen... :banghead:

Mein aktueller Fall:

Code: Alles auswählen

xTest() - soll nicht gefunden werden
xTest(xVar) - soll gefunden werden
xTest("Hugo") - soll gefunden werden
xTest({..}) - soll gefunden werden
Das ist mit RegEx nicht wirklich lustig. Ich glaube, ich gebe es auf...
Aber trotzdem danke.
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13378
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Martin Altmann » Mo, 02. Mai 2011 12:55

Hmm,

Code: Alles auswählen

xTest\(.*\)
Wenn das auch xTest() liefert, dann vielleicht:

Code: Alles auswählen

xTest\(..*\)
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2259
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Wolfgang Ciriack » Mo, 02. Mai 2011 13:14

Also in meinem brief-Editor klappt es mit

Code: Alles auswählen

xtest([~)]
Das findet
xtest("Hugo")
xtest(xVar)
xtest({b})
aber nicht xtest()
Viele Grüße
Wolfgang

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 13:26

@Martin+Wolfgang: Auch diese Vorschläge funktionieren nicht, liefern aber unterschiedliche Ergebnisse..

@Wolfgang: Komisch, dass das bei Dir klappt, aber bei mir nicht?! Ich kann in meinem Editor 4 verschiedene "Regular Expression Dialect"s einstellen. Bei "Posix", "ED" und "ED Org" wird Dein Vorschlag als nicht regelkonform abgewiesen, bei "MS Visual Developer RE" lässt er sich ausführen, findet aber nur xTest() und eben gerade nicht xTest(xValue) oder xTest("Hugo"). Ich müsste den Ausdruck also ggf. verneinen...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13601
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von brandelh » Mo, 02. Mai 2011 13:28

Hi,

mein MED findet mit Martins: ctest\(+[a-z]+\)

alle cTest(???) - also mit Inhalt, aber keine cTest() - nun soll aber genau das Gegenteil gesucht werden, wie kann man das mit ^ negieren. Damit habe ich keinen Erfolg.
Wolfgangs Ausdruck: ctest([~)] gibt bei mir aber einen Klammerfehler, ctest([~)]) findet nichts.
Markus Walter hat geschrieben:findet aber nur xTest() und eben gerade nicht xTest(xValue) oder xTest("Hugo"). Ich müsste den Ausdruck also ggf. verneinen...
MED: ctest\(+[a-z]+\) findet cText(egal was) aber nicht cText() !
Gruß
Hubert

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 13:36

brandelh hat geschrieben:MED: ctest\(+[a-z]+\) findet cText(egal was) aber nicht cText() !
Negativ. Das findet bei mir zwar xTest(xValue), aber nicht xTest("Hugo"). Wohl wegen des Anführungszeichen, das müsste wohl noch in die Auflistung a-z (und ggf. noch weitere, z. B. der Unterstrich). Bei so einer Notation läuft man also doch Gefahr, "Sonderfälle" zu übersehen...

Kennt jemand wenigstens eine gute Dokumentation über die RegEx?
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2259
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Wolfgang Ciriack » Mo, 02. Mai 2011 13:40

Ich wusste ja schon immer, dass mein 20 Jahre alter brief-Editor gut ist :wink: :D

Ich hab noch mal nachgesehen, der verwendet eine brief-eigene regular expression Suche :(
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13601
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von brandelh » Mo, 02. Mai 2011 13:41

Hallo Markus,

stimmt das " wurde ausgespart, daher habe ich das versucht und es hat auch die cTest("Egon") gefunden:

Code: Alles auswählen

ctest\(+["-z]+\)
findet bei mir im MED:

cTest([Egal])
cTest('Egal')
cTest("Egal")
Gruß
Hubert

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 14:13

brandelh hat geschrieben:stimmt das " wurde ausgespart, daher habe ich das versucht und es hat auch die cTest("Egon") gefunden:

Code: Alles auswählen

ctest\(+["-z]+\)
findet bei mir im MED:

cTest([Egal])
cTest('Egal')
cTest("Egal")
Schon viel besser, aber noch immer nicht perfekt...
Findet z. B. eine Stelle wie: wTest()+cValue oder wIrgendwas(wTest()), d. h. die runde Klammer zu und das Plus-Zeichen liegen wohl zwischen ["-z]...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13601
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von brandelh » Mo, 02. Mai 2011 14:19

Na du bist aber anspruchsvoll ;-)

Wenn es viel Text ist und die Bedingung zu übel hilft nur ein kleines Programm, das die betreffenden Zeilen ausfiltert.
Ich nehme dazu dann PowerBasic ConsoleCompiler ;-)
Gruß
Hubert

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2259
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Wolfgang Ciriack » Mo, 02. Mai 2011 14:27

Was macht denn

Code: Alles auswählen

ctest\(+["-z^\)]
Viele Grüße
Wolfgang

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6734
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Tom » Mo, 02. Mai 2011 14:30

Hier findet man u.a. ausführliche Erklärungen zu RegEx:

http://wiki.multiedit.com

(nach "Regular Expressions" suchen)
Herzlich,
Tom

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 14:34

Wolfgang Ciriack hat geschrieben:Was macht denn

Code: Alles auswählen

ctest\(+["-z^\)]
Das findet bei mir auch wieder xTest(), neben denen, die es finden sollte...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2259
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Komplexe Suche mit regular expression

Beitrag von Wolfgang Ciriack » Mo, 02. Mai 2011 14:47

Und

Code: Alles auswählen

ctest\(+["-z][^\)]
?
Viele Grüße
Wolfgang

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitrag von Markus Walter » Mo, 02. Mai 2011 17:40

Hi Wolfgang,

findet weniger Stellen als das vorherige, aber immernoch die wTest()...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitrag von Markus Walter » Mi, 04. Mai 2011 12:08

Hi,

es ist eigentlich ganz einfach... (wie immer wenn man es weiß) :D

Code: Alles auswählen

wTest\(~\)
Das ~-Zeichen negiert, somit wird mit o. a. Syntax kein wTest() gefunden, sehr wohl aber Aufrufe mit Parameter. Problematisch wären jetzt noch Leerzeichen, z. B. wTest( ). Aber da bin ich beim Codieren recht ordentlich...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13601
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim
Kontaktdaten:

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitrag von brandelh » Mi, 04. Mai 2011 12:36

Markus Walter hat geschrieben:Problematisch wären jetzt noch Leerzeichen, z. B. wTest( ). Aber da bin ich beim Codieren recht ordentlich...
wenn nicht, könnte man das aber ja auch ganz einfach mit Suchen & Ersetzen korrigieren ;-)
xyz( ) -> xyz() -> wiederholen, bis nichts mehr gefunden wird :D
Gruß
Hubert

Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
Beiträge: 1018
Registriert: Di, 24. Jan 2006 11:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitrag von Markus Walter » Mi, 04. Mai 2011 14:18

Hi,

klar Hubert, wenn man es denn weiß...

Ich möchte einiges an Code-Refactoring betreiben. Hier bieten moderne IDEs mächtige Möglichkeiten (z. B. Eclipse). Zumindest brauche ich eine verlässliche Suchmöglichkeit, sonst kann ich ja auch kein Suchen+Ersetzen betreiben...
Gruß
Markus

Mitglied der XUG Saarland-Pfalz

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast