Autor Beitrag
sacharja
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Sa 04.02.06 14:19 
Hallo,
wie kann ich einen RegEx Ausdruck auf einen String anwenden und das Gefundene in eine Variable speichern?

Ich hab schon in der Delphi Hilfe geschaut, aber da steht überhaupt nichts drin. Habt ihr vielleicht eine Delphi Objektreferenz, wo alle Befehle/Eigenschaften aufgelistet sind? So etwas wie SelfHtml (damit ich nicht immer nachfragen muss ;))
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 04.02.06 17:41 

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
sacharja Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 05.02.06 10:44 
In den 2 Threads die man dann findet steht genau 1 Information, nämlich dass die Funktion TREGEXP heißt :?

Gibt es keine bekannte Objektreferenz? Vielleicht könnte einmal jemand ein Beispiel machen, wie man aus einem String "blablaxxxxxxxblabla" das "xxxxxxx" extrahiert und weiterverwendet.
Wäre super.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 05.02.06 11:03 
Nope, da muss ich Dir leider sagen, hast Du falsch gelesen: Die Komponente heißt TRegExp und die beiden Threads erklären deren Nutzung für Search-Patterns. Hättest Du einfach einmal Suche bei Google TREGEXP in Google eingegeben, wärst Du ohne Umwege auf die Komponente gestoßen. Ein wenig Eigeninitiative darf man ja bitte erwarten!

MfG,
BenBE.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
sacharja Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 05.02.06 11:53 
Zitat:
Nope, da muss ich Dir leider sagen, hast Du falsch gelesen

Wieso das denn?

Zitat:
die beiden Threads erklären deren Nutzung für Search-Patterns.

Hast du dir die beiden Thread einmal angeschaut? Im ersten steht über TREGEXP das:
Zitat:
es gibt eine komponente namens TRegExp, befrag mal torry oder google. Damit lässt sich sowas sicher überprüfen.

und im zweiten das:
Zitat:
Es gibt eine Komponente Namens TRegExp oder so ähnlich. Mit der kannst du mittels Regulärer Ausdrücke überprüfen, ob die eingegebene Email-Adresse gültig ist.

So schlau war ich auch schon vorher.

Zitat:
Hättest Du einfach einmal TREGEXP in Google eingegeben, wärst Du ohne Umwege auf die Komponente gestoßen.

Wie geschrieben habe ich bevor ich diesen Post erstellte sowohl in der Delphi Hilfe als auch in Google danach gesucht. Nachdem ich da nach 1h aber nichts Brauchbares gefunden habe, dachte ich jemand hier könnte vielleicht schnell ein Beispiel machen wie man es anwendet, oder wenigstens eine gute Seite nennen, wo die Verwendung drin steht.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 05.02.06 18:24 
Du hast die entscheidenen Stellen zitiert, die BenBes Argumentation unterstreichen, nämlich dass es sich nicht um eine Funktion, sondern um eine Klasse/Komponente handelt.

Und zur Suche, ich hab 30sec gebraucht, um mit Hilfe von Google diese Seite zu finden (sogar mit dem R das hinten noch dran steht *g*): regexpstudio.com/TRegExpr/TRegExpr.html

Unter dem Link "Bird's Eye View" auf der Seite finden sich sogar Beispiele, wie man die Komponente anwendet
sacharja Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mo 06.02.06 17:34 
Ja, die Seite hatte ich auch schon gefunden. Das Tool ist eine Ansammlung regulärer Ausdrücke. Hier liegt auch glaube ich ein Mißverständnis vor. Reguläre Ausdrücke kann ich ohne Probleme formulieren (mit JS mache ich fast nichts anderes). Das Problem ist nur wie ich meine RegEx in Delphi verarbeite.

Werde mich aber einmal durch die Hilfe des Tools wühlen, vielleicht steht da ja noch etwas drinnen...

JS Code:
ausblenden Quelltext
1:
2:
3:
UnprefString = "das soll durchsucht werden";
RegUnprefRul = new RegExp(/(?:[^\"]{5}|(?=javascript:)[^)]+)((?:http|ftp|https|nntp)(?::|%3a)(?:\/|%2f)(?:\/|%2f)[^&)\'\"]+)/,im);
if (RegUnprefRul.test(UnprefString) == true){}
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 06.02.06 17:52 
Ich habs jetzt nur mal im Editor angeschaut, aber ich verstehe Dein Problem nicht. Die Klasse, die in dem Paket ist (zur Sicherheit hier nochmal der Download-Link: regexpstudio.com/Downloads/regexpr_DE.zip) sieht sehr danach aus, als ob man damit RegExp anwenden koennte. Und auch die Beispielseite, die dort verlinkt ist (habe ich oben genannt) sieht sehr danach aus, als ob es GENAU das ist, was Du suchst.

Wuerdest Du also bitte bitte mal diese Klasse anschauen .... :roll:
ghost_assassin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 18



BeitragVerfasst: Mi 08.02.06 12:54 
Zitat:
wie man aus einem String "blablaxxxxxxxblabla" das "xxxxxxx" extrahiert und weiterverwendet.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
var xstring:string
begin
xstring:=copy('blablaxxxxxxxblabla',7,7);
end;


wenn du auf bestimmte zeichen ausbist, einfach
schritt für schritt jedes zeichen vom string
überprüfen...
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mi 08.02.06 13:23 
Suchen kannst Du mit TRegExpr folgendermaßen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  RegEx: TRegExpr;
begin  
  RegEx             := TRegExpr.Create();
  RegEx.Expression  := '([\w|.]+),?';
  RegEx.InputString := '.com, .net, .org';
  if RegEx.Exec() then
  begin
    repeat
      ShowMessage(RegEx.Match[0] + ' - ' + RegEx.Match[1]);
    until not RegEx.ExecNext();
  end;
  RegEx.Free();
end;


Match[0] ist immmer der komplette gefundene String und Match[1] bis Match[n] die Teile in den Klammern.

Bis neulich ...
sacharja Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Fr 10.02.06 14:12 
Zitat:
Suchen kannst Du mit TRegExpr folgendermaßen:

Zitat:
Match[0] ist immmer der komplette gefundene String und Match[1] bis Match[n] die Teile in den Klammern.

Super, danke genau das habe ich gesucht. Werde ich gleich einmal ausprobieren.