AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit TRegExpr

Ein Thema von CalganX · begonnen am 5. Feb 2005 · letzter Beitrag vom 6. Feb 2005
Antwort Antwort
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Probleme mit TRegExpr

  Alt 5. Feb 2005, 23:19
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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Probleme mit TRegExpr

  Alt 6. Feb 2005, 08:30
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Probleme mit TRegExpr

  Alt 6. Feb 2005, 12:25
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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Probleme mit TRegExpr

  Alt 6. Feb 2005, 12:35
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:51 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