Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit TRegExpr (https://www.delphipraxis.net/39656-probleme-mit-tregexpr.html)

CalganX 5. Feb 2005 22:19


Probleme mit TRegExpr
 
Hi,
ich habe mir von hier die Bibliothek TRegExpr heruntergeladen und will die jetzt verwenden. Es geht mir darum ein Schema zu finden, dass diesem hier ähnelt (dieses Schema kann sich immer wieder holen, in eigenen Zeilen:
Code:
something_interesting("Interesting very be should This");
Also habe ich mir mit Hilfe des RegExprStudio von selbige Seite folgenden Ausdruck zusammengebastelt, der zwar nicht schön ist, aber funktioniert (Vorschläge zur Verbesserung nehme ich gerne an). Jedenfalls in diesem Testprogramm.
Code:
[\n](.*?)\((.*?)\);[\r]
In meinem Programm allerdings, schlägt die Ausführung fehl. Sprich die Ausführungsroutine Exec gibt false zurück. Woran kann das liegen? Hat jemand eine Idee?

Bin für jede Hilfe dankbar,
Chris

mirage228 6. Feb 2005 07:30

Re: Probleme mit TRegExpr
 
Hi,

was sollen denn das [\r] bzw. das [\n]. Falls das nur ein Buchstabe sein soll, kannst Du das \r (\R ist eigentlich der PCRE Modifier für Rekursion...) bzw. \n (Neue Zeile, #10) auch ohne eckige Klammern schreiben.

Abgesehen davon, könntest Du ja mal versuchen ohne greedy Operatoren (also nur (.*) ) zu arbeiten ;)

mfG
mirage228

CalganX 6. Feb 2005 11:25

Re: Probleme mit TRegExpr
 
Hi,
ich habe [\r] und [\n] drin, weil \r\n unter Windows bekanntlich ein ganzer Zeilenumbruch ist. Das Problem ist nun, dass ich nicht weiß, ob wirklich einer davor bzw. dahinter ist. Deswegen die eckigen Klammern, die sagen nur aus, dass das was da drin steht kommen kann, aber nicht muss, oder?

Naja, ich habe die jetzt allerdings herausgenommen, weil ich meinen Fehler gefunden habe. Ich habe vergessen, dass ich mit einzeiligen Strings arbeite, das heißt, dass ein Zeilenumbruch niemals vorkommen wird. Allerdings funktioniert es jetzt einwandfrei. :)

Trotzdem danke für deine Hilfe,
Chris

mirage228 6. Feb 2005 11:35

Re: Probleme mit TRegExpr
 
Zitat:

Zitat von Chakotay1308
Deswegen die eckigen Klammern, die sagen nur aus, dass das was da drin steht kommen kann, aber nicht muss, oder?

Nein, nicht ganz
mit [...] definierst Du Character-Klassen. Also z.B. würde

Code:
[abc]seite
aseite, bseite oder cseite matchen. Also einen der Characters in der Liste.

Wobei
Code:
(a|b|c)seite
das selbe bewirkt, nur etwas langsamer ist.

Wenn das ganze optional sein soll, musst Du es in etwa so schreiben (ungetestet!)
Code:
([abc]|)seite
Zitat:

Trotzdem danke für deine Hilfe
Bitte sehr :)

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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