AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RegEx mit Ausschluß

Ein Thema von VizeTE · begonnen am 20. Sep 2007 · letzter Beitrag vom 24. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

RegEx mit Ausschluß

  Alt 20. Sep 2007, 17:19
Hallo zusammen,

in der Delpi-IDE gibt es ja im Menü unter "Suchen" => "In Dateien suchen" die Möglichkeit via Regexpressions zu suchen.

Nun habe ich Probleme beim formulieren der richtigen Regexpression. Diese soll mir einen Text ausgeben welcher nicht auskommentiert wurde.
Hier mal ein Beispiel

Delphi-Quellcode:
blabla mein Text blabla //möchte ich haben
//blabla mein Text blabla //möchte ich NICHT haben
Ich suche nun nach "mein Text", möchte aber nur die erste Zeile haben da die zweite Zeile ja auskommententiert wurde.

Ich hatte mir etwas in folgender Richtung vorgestellt:
[^(//)].*mein Text

Das funktioniert aber nicht.


Hoffe ihr habt ne Idee.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: RegEx mit Ausschluß

  Alt 20. Sep 2007, 17:21
^\w*(?!//).*?$

Zur Not ^ und $ umdrehen, weiß nicht mehr, welches es nun war.
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#3

Re: RegEx mit Ausschluß

  Alt 20. Sep 2007, 18:28
Geh auf meine HP lad dir den Tokenizer runter

und sag dem das du einen Einzeilenkomemntar hast der mit "//" anfängt

dan jag den String durch und dahinter gibts die Kommentare nicht mehr .

[Edit]

Ups sry ich hab mich verlesen ich dachte du brauchst das in nem Programm.

in der Delphi suche wirds dir wohl nichts bringen, auser man kann da die Strings umpipen ...
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 07:23
Zitat von Dax:
^\w*(?!//).*?$

Zur Not ^ und $ umdrehen, weiß nicht mehr, welches es nun war.
Hallo Dax,

das scheint noch nicht ganz da zu sein was ich suche.
Beim nachlesen der Bedeutung des Ausdrucks "(?!//)" bin ich auf was gestoßen was intresssant sein könnte: (?<!…)…

Hier nochmal mein Beispiel von oben:

Delphi-Quellcode:
blabla mein Text blabla //möchte ich haben
//blabla mein Text blabla //möchte ich NICHT haben
Ich habe mir mal "The Regex Coach" runtergeladen und folgende RegEx getestet:

(?<!//)mein Text

Mit diesen Ausdruck wird schon einmal nur der Text gefunden wenn nicht direkt davor die Slashes sind. Stehen diese aber am Anfang der Zeile wird diese Zeil dennoch als Treffer gewertet.
Also müßte ich es irgendwie schaffen zu definieren, dass zwischen den Slashes und dem Suchtext beliebig viele Zeichen stehen können.

Wenn ich das so versuche:

(?<!//).*mein Text

dann funktionierts wieder nicht da dann die gesamte Zeile (bis zum Ende des Suchtextes) als Treffer zurückgegeben wird egal ob Slashes davor stehen oder nicht.
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 08:02
möglicherweise habe ich die Lösung gefunden:

(?<!(.*//.*))mein Text

Jedoch kommt die Suchfunktion der Delphi-IDE sowie der RegEx Coach nicht damit klar. Mit der Demo des "EditPad Pro" funktionierts aber.
Hat jemand eine Idee wie ich das auch Delphi verständlich machen kann?
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 09:31
Machts doch nicht so kompliziert... Wie wärs damit:
Code:
^[^/]*mein Text
mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 13:00
Zitat von r2c2:
Machts doch nicht so kompliziert... Wie wärs damit:
Code:
^[^/]*mein Text
mfg

Christian
Ich bin leider (noch) kein RegExp.-Profi aber würde dieser Ausdruck nicht bedeuten das:
1) die Kommentarzeichen am Anfang einer Zeile stehen müssen
2) es auch kein Treffer gibt wenn genau 1 "/" enthalten ist (ist ja kein Kommentar)

Diese Einschränkungen möchte ich nicht in Kauf nehmen sofer es eine andere Möglichkeit gibt.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 13:20
^\w*(?<!//).*?mein Text.*?$

Geht es vielleicht so?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 13:41
Ich werfe mal einen weiteren Vorschlag in die Runde:
Code:
^((?!//).)*dein Text
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#10

Re: RegEx mit Ausschluß

  Alt 21. Sep 2007, 14:43
Zitat von VizeTE:
Ich bin leider (noch) kein RegExp.-Profi aber würde dieser Ausdruck nicht bedeuten das:
1) die Kommentarzeichen am Anfang einer Zeile stehen müssen
Nö, das passt schon so.

Zitat:
2) es auch kein Treffer gibt wenn genau 1 "/" enthalten ist (ist ja kein Kommentar)
Gut, das stimmt. Korrektur:
Code:
^[^/]*/?[^/]*mein Text
@Dax, Khabarakh:
Ich glaube die Delphi-Such-Regexe können keine Look-Aheads, etc.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz