Komplexe Suche mit regular expression [ERLEDIGT]

Alles rund um Editoren, visuelle Entwicklungshilfen und Form-Designer

Moderator: Moderatoren

Komplexe Suche mit regular expression [ERLEDIGT]

Beitragvon Markus Walter » Fr, 29. Apr 2011 13: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Tom » Fr, 29. Apr 2011 14: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
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6679
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Wolfgang Ciriack » Fr, 29. Apr 2011 16:41

Ich würde es mal mit
test(+[a-z]+)


versuchen.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Sa, 30. Apr 2011 15: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Martin Altmann » Sa, 30. Apr 2011 16: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
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12738
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Sa, 30. Apr 2011 16: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Martin Altmann » Sa, 30. Apr 2011 16: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
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12738
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 11: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Martin Altmann » Mo, 02. Mai 2011 11: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
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12738
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Wolfgang Ciriack » Mo, 02. Mai 2011 12: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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 12: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon brandelh » Mo, 02. Mai 2011 12: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 12: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Wolfgang Ciriack » Mo, 02. Mai 2011 12: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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon brandelh » Mo, 02. Mai 2011 12: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 13: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon brandelh » Mo, 02. Mai 2011 13: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Komplexe Suche mit regular expression

Beitragvon Wolfgang Ciriack » Mo, 02. Mai 2011 13:27

Was macht denn
Code: Alles auswählen
ctest\(+["-z^\)]
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Tom » Mo, 02. Mai 2011 13:30

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

http://wiki.multiedit.com

(nach "Regular Expressions" suchen)
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6679
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 13: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression

Beitragvon Wolfgang Ciriack » Mo, 02. Mai 2011 13:47

Und
Code: Alles auswählen
ctest\(+["-z][^\)]
?
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Komplexe Suche mit regular expression

Beitragvon Markus Walter » Mo, 02. Mai 2011 16: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 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitragvon Markus Walter » Mi, 04. Mai 2011 11: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
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitragvon brandelh » Mi, 04. Mai 2011 11: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Komplexe Suche mit regular expression [ERLEDIGT]

Beitragvon Markus Walter » Mi, 04. Mai 2011 13: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
Benutzeravatar
Markus Walter
Programmier-Gott
Programmier-Gott
 
Beiträge: 1018
Registriert: Di, 24. Jan 2006 10:22
Wohnort: Saarland

Nächste

Zurück zu IDEs und Editoren

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast