Komplexe Suche mit regular expression [ERLEDIGT]
Moderator: Moderatoren
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Komplexe Suche mit regular expression [ERLEDIGT]
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
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?
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
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
Markus
Mitglied der XUG Saarland-Pfalz
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
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.
Herzlich,
Tom
Tom
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Ich würde es mal mit
versuchen.test(+[a-z]+)
Viele Grüße
Wolfgang
Wolfgang
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
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...
@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...
@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...
Code: Alles auswählen
test(+[a-z]+)
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
Markus
Mitglied der XUG Saarland-Pfalz
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Markus,
dann musst Du die Klammern "escapen"!
Beispiel:
Viele Grüße,
Martin
dann musst Du die Klammern "escapen"!
Beispiel:
Code: Alles auswählen
test\(+[a-z]+\)
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
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...
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
Markus
Mitglied der XUG Saarland-Pfalz
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Vielleicht die Zeichen in ^ einschließen...
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
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...
Mein aktueller Fall:
Das ist mit RegEx nicht wirklich lustig. Ich glaube, ich gebe es auf...
Aber trotzdem danke.
Warum kann mein Editor nicht eine einfache Notiation wie alle Suchmaschinen...
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
Aber trotzdem danke.
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Hmm,
Wenn das auch xTest() liefert, dann vielleicht:
Viele Grüße,
Martin
Code: Alles auswählen
xTest\(.*\)
Code: Alles auswählen
xTest\(..*\)
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Also in meinem brief-Editor klappt es mit
Das findet
xtest("Hugo")
xtest(xVar)
xtest({b})
aber nicht xtest()
Code: Alles auswählen
xtest([~)]
xtest("Hugo")
xtest(xVar)
xtest({b})
aber nicht xtest()
Viele Grüße
Wolfgang
Wolfgang
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
@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...
@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
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
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.
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.
MED: ctest\(+[a-z]+\) findet cText(egal was) aber nicht cText() !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...
Gruß
Hubert
Hubert
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
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...brandelh hat geschrieben:MED: ctest\(+[a-z]+\) findet cText(egal was) aber nicht cText() !
Kennt jemand wenigstens eine gute Dokumentation über die RegEx?
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Ich wusste ja schon immer, dass mein 20 Jahre alter brief-Editor gut ist
Ich hab noch mal nachgesehen, der verwendet eine brief-eigene regular expression Suche
Ich hab noch mal nachgesehen, der verwendet eine brief-eigene regular expression Suche
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Hallo Markus,
stimmt das " wurde ausgespart, daher habe ich das versucht und es hat auch die cTest("Egon") gefunden:
findet bei mir im MED:
cTest([Egal])
cTest('Egal')
cTest("Egal")
stimmt das " wurde ausgespart, daher habe ich das versucht und es hat auch die cTest("Egon") gefunden:
Code: Alles auswählen
ctest\(+["-z]+\)
cTest([Egal])
cTest('Egal')
cTest("Egal")
Gruß
Hubert
Hubert
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
Schon viel besser, aber noch immer nicht perfekt...brandelh hat geschrieben:stimmt das " wurde ausgespart, daher habe ich das versucht und es hat auch die cTest("Egon") gefunden:
findet bei mir im MED:Code: Alles auswählen
ctest\(+["-z]+\)
cTest([Egal])
cTest('Egal')
cTest("Egal")
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
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
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
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
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Was macht denn
Code: Alles auswählen
ctest\(+["-z^\)]
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Hier findet man u.a. ausführliche Erklärungen zu RegEx:
http://wiki.multiedit.com
(nach "Regular Expressions" suchen)
http://wiki.multiedit.com
(nach "Regular Expressions" suchen)
Herzlich,
Tom
Tom
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
Das findet bei mir auch wieder xTest(), neben denen, die es finden sollte...Wolfgang Ciriack hat geschrieben:Was macht dennCode: Alles auswählen
ctest\(+["-z^\)]
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression
Und
?
Code: Alles auswählen
ctest\(+["-z][^\)]
Viele Grüße
Wolfgang
Wolfgang
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression
Hi Wolfgang,
findet weniger Stellen als das vorherige, aber immernoch die wTest()...
findet weniger Stellen als das vorherige, aber immernoch die wTest()...
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression [ERLEDIGT]
Hi,
es ist eigentlich ganz einfach... (wie immer wenn man es weiß)
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...
es ist eigentlich ganz einfach... (wie immer wenn man es weiß)
Code: Alles auswählen
wTest\(~\)
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Komplexe Suche mit regular expression [ERLEDIGT]
wenn nicht, könnte man das aber ja auch ganz einfach mit Suchen & Ersetzen korrigierenMarkus Walter hat geschrieben:Problematisch wären jetzt noch Leerzeichen, z. B. wTest( ). Aber da bin ich beim Codieren recht ordentlich...
xyz( ) -> xyz() -> wiederholen, bis nichts mehr gefunden wird
Gruß
Hubert
Hubert
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Komplexe Suche mit regular expression [ERLEDIGT]
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...
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
Markus
Mitglied der XUG Saarland-Pfalz