AGB  ·  Datenschutz  ·  Impressum  







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

Regex: Frage zur abfrage

Ein Thema von Chefx · begonnen am 13. Jan 2010 · letzter Beitrag vom 20. Jan 2010
Antwort Antwort
Seite 3 von 3     123   
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Regex: Frage zur abfrage

  Alt 19. Jan 2010, 20:04
ich glaub es liegt entweder an der Komponente oder mein Code hat einen hacken
(hab noch ein paar tage zeit bekommen )
Delphi-Quellcode:
var
  code: array of string;
  regexMachine: TPerlRegEx;
begin
  SetLength(code, 0); //Array initialisieren
  SetLength(pos, 0); //
  regexMachine := TPerlRegEx.Create(nil);
  try
    regexMachine.RegEx := '[A-Za-z0-9äöüÄÖÜß]*[A-Za-zäöüÄÖÜß]+[A-Za-z0-9äöüÄÖÜß]*'; // mit dem [\p{N}_]*[\p{L}_]+[\p{N}_]* hab ich es auch versucht hat auch nicht funktioniert
    regexMachine.Subject := 'hallo was machst du';
    regexMachine.Options := regexMachine.Options + [preUnGreedy];

    if regexMachine.Match then
    begin
      repeat
        setlength(code, Length(code) + 1);// Treffer um neu gefundenen erweitern
        code[Length(code) - 1] := regexMachine.MatchedExpression;// Neue Treffer in das code Array eintragen
      until not regexMachine.MatchAgain; // und weitersuchen. Abbruch, wenn kein Treffer mehr
    end;
    memo1.Lines.add(code[0]);
  finally
    regexMachine.free;
  end;
vielleicht ist hier der Fehler?
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
MarioM.

Registriert seit: 29. Mai 2006
52 Beiträge
 
#22

Re: Regex: Frage zur abfrage

  Alt 19. Jan 2010, 20:54
Kann den Code hier nicht testen, da ich die Komponente hier nicht installiert habe.
Oben wurde gesagt, dass alle Wörter matchen, da die RegEx gierig ist, und somit alles frisst, was sie finden kann.

In diesem Zusammenhang sieht mir folgendes etwas merkwürdig aus:
regexMachine.Options := regexMachine.Options + [preUnGreedy]; Desweiteren meine ich, mich erinnern zu können, dass die Matches mit
regexMachine.SubExpressions[...] abgefragt werden.
  Mit Zitat antworten Zitat
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Regex: Frage zur abfrage

  Alt 19. Jan 2010, 21:06
[quote="MarioM."]
In diesem Zusammenhang sieht mir folgendes etwas merkwürdig aus:
regexMachine.Options := regexMachine.Options + [preUnGreedy]; Was soll ich deiner Meinung nach machen?
Wenn du das meinst:
regexMachine.Options :=[preUnGreedy]; verändert es sich auch leider nicht.

Das mit regexMachine.SubExpressions[...] hatte ich auch schon.

Was nimmst du für eine Kompo?
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

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

Re: Regex: Frage zur abfrage

  Alt 19. Jan 2010, 22:13
Zitat von Chefx:
Was soll ich deiner Meinung nach machen?
Ganz weglassen? Oder war irgendetwas an unseren Beiträgen, dass es mit einem greedy Regex funktioniert, nicht verständlich ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
MarioM.

Registriert seit: 29. Mai 2006
52 Beiträge
 
#25

Re: Regex: Frage zur abfrage

  Alt 20. Jan 2010, 06:57
Zitat von Chefx:
Was soll ich deiner Meinung nach machen?
Wenn Du häufiger mit Regulären Ausdrücken arbeitest, solltest Du Dir geeignete Literatur anschaffen.

Desweiteren kann es nicht schaden, wenn Du Dir ein kleines Tool zulegst, mit dem Du Deine RegEx testen und debuggen kannst. Da Du die PerlRegEx-Komponente einsetzt, liegt es nahe, Dein Taschengeld in den RegExBuddy zu investieren. Der ist vom gleichen Autor wie die von Dir genutzte Komponente, und Du kannst damit verschiedene Engines testen. Schau Dir das Ganze auf der Homepage einfach mal an.
  Mit Zitat antworten Zitat
Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: Regex: Frage zur abfrage

  Alt 20. Jan 2010, 16:03
Zitat von Khabarakh:
Oder war irgendetwas an unseren Beiträgen, dass es mit einem greedy Regex funktioniert, nicht verständlich ?
Sorry, ich war noch nicht so bewandert in diesen Thema (ich wusste nicht was du unter greedy meinst).

Ich werde mir die Links mal anschauen (ein Buch darüber ist bestimmt nicht verkehrt ).

Danke für eure ganzen Antworten

MfG
Chefx
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat
s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#27

Re: Regex: Frage zur abfrage

  Alt 20. Jan 2010, 18:59
Hallo,

Zitat von Chefx:
ein Buch darüber ist bestimmt nicht verkehrt
Ein Buch? Das ist nicht ein Buch - es ist das Buch - die Bibel der Regulären Ausdrücke
Nee, mal im Ernst; 'Der Friedl' - oder auch das 'Eulenbuch' genannt, ist das Standardwerk, wenn es um RegEx geht.
Und man lernt beim Lesen nicht nur etwas über die Regulären Ausdrücke, sondern auch noch ein bissel Perl, was dem ein oder anderen vielleicht Lust auf mehr macht.

Begleitend dazu würde ich noch diese kleine Referenz empfehlen, die man gut auf dem Schreibtisch liegen haben kann.
Und natürlich das Tool, das Mario oben schon empfohlen hat. Die Programme von JG-Soft sind, was Reguläre Ausdrücke betrifft, wirklich genial - besonders auch PowerGREP, was auf den ersten Blick recht teuer erscheint, aber für mich bisher jeden Cent wert war!
Gruß
s-off
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 23:07 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