Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi RegExpr - Unrecognized Modifier (https://www.delphipraxis.net/118576-regexpr-unrecognized-modifier.html)

chuckySTAR 10. Aug 2008 23:54


RegExpr - Unrecognized Modifier
 
Hey,
Ich habe ein Problem mit der RegExpr Komponente von http://www.regexpstudio.com/ ( ist das nicht auch die einzige gute die es für Delphi gibt? )
Un zwar bekomme ich den Error "TRegExpr(comp): Unrecognized Modifier (pos 12)"
Delphi-Quellcode:
regex.Expression := '(?:\[([^\]]+))';
pos 12 wäre dann ja das Plus Zeichen, aber warum ist das ein Problem :( ?

Ich hoffe ihr könnt mir helfen

omata 11. Aug 2008 00:09

Re: RegExpr - Unrecognized Modifier
 
Du solltest lieber erzählen, was du da eigentlich genau machen willst. Warum sollen wir dir den Mond erklären, wenn du zum Mars fliegst?!

chuckySTAR 11. Aug 2008 00:17

Re: RegExpr - Unrecognized Modifier
 
Achso ja =)
Ich will aus einer Log Zeile den Plugin Namen extrahieren.
Sieht so aus:
L 08/09/2008 - 00:03:00: [std_admin_color_chat.amxx] ...

Delphi-Quellcode:
ReadLn(logfile, log);
regex := TRegExpr.Create;
try
  regex.Expression := '(?:\[([^\]]+))';
  if regex.Exec (log) then
    plugin := regex.Match[0];
finally
  regex.Free;
end;

omata 11. Aug 2008 00:21

Re: RegExpr - Unrecognized Modifier
 
Versuch es doch mal so...

Delphi-Quellcode:
ReadLn(logfile, log);
RegEx := TRegExpr.Create;
try
  RegEx.Expression := '\[(.*)\]';
  if RegEx.Exec(log) then
    plugin := RegEx.Match[1];
finally
  RegEx.Free;
end;

chuckySTAR 11. Aug 2008 00:28

Re: RegExpr - Unrecognized Modifier
 
Ahh es klappt danke.
Aber warum wollte er nicht meine Regex nehmen :( ?
Delphi-Quellcode:
plugin := RegEx.Match[0]; // es ist doch 0 nicht 1
Kannst du mir noch eben sagen, wie der RegEx Befehel war, dass er nicht "hungrig" ist? Da öfters sowas drinnen steht:
Name vom Plugin ... [bla]

omata 11. Aug 2008 00:31

Re: RegExpr - Unrecognized Modifier
 
Doch es ist [1] und nicht [0]!

[0] = alles, also mit den Klammern
[1] = alles innerhalb der Klammern

Gierig: RegExpr.ModifierG:=true;

chuckySTAR 11. Aug 2008 00:34

Re: RegExpr - Unrecognized Modifier
 
Ah stimmt ^^
Danke, echt top! So schnelle Antworten! Find ich echt super!
Das mit dem gierig sein habe ich eben auch noch gefunden, nur ein bisschen anders
Delphi-Quellcode:
regex.Expression := '\[(.+?)\]';
Einfach das Fragezeichen hinzu

Danke noch einmal :p


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