AGB  ·  Datenschutz  ·  Impressum  







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

Reguläre Ausdrücke...wie?

Ein Thema von glkgereon · begonnen am 16. Jun 2005 · letzter Beitrag vom 16. Jun 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 12:54
Hi

ich versuch mich grad mit regulären ausdrücken...hab gesucht, aber nicht wirklich was brauchbares gefunden

mir schwebt sowas in der art vor:

Ausgangsstring: Hallo - Du - Bla-Wuppdi.abc
Maske1: %titel% - %wort% - %test%-%name%.%endung%
Maske2: %name% - %test% - %titel% - %wort%.%endung%
Ausgabestring: Wuppdi - Bla - Hallo - Du.abc

ich hoffe es wird klar was ich will...

dazu hätte ich 2 fragen:
sind das überhaupt reguläre ausdrücke?
wie kann man sowas halbwegs einfach realisieren?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 12:56
Ich würde in dem Fall auf das RegExp Studio verweisen
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:30
das sieht sehr gut aus!!!

ich habe folgendes beispiel gefunden:

Delphi-Quellcode:
function ParsePhone (const AInputString, ATemplate : string) : string;
const
   IntPhoneRE = '(\+\d *)?(\(\d+\) *)?\d+(-\d*)*';
var
   r : TRegExpr;
begin
   r := TRegExpr.Create;
   try
      r.Expression := IntPhoneRE;
      if r.Exec (AInputString)
         then Result := r.Substitute (ATemplate)
         else Result := '';
      finally r.Free;
   end;
end;
begin
   ParsePhone ('Phone of AlkorSoft (project PayCash) is +7(812) 329-44-69',
   'Zone code $1, city code $2. Whole phone number is $&.');
   // Rückgabe: 'Zone code +7, city code (812) . Whole phone number is +7(812) 329-44-69.'
end.
jedoch auch mithilfe dieser Seite gelingt es mir nicht die function so umzubauen das ich sie für meine zwecke nutzen könnte

was ich möchte is einfach nur folgendes:
$1 + string + $2 + string
umsortieren im prinzip...also zb in
string + $2 + $1 + string

wie geht das?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#4

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:37
Zitat von glkgereon:
Ausgangsstring: Hallo - Du - Bla-Wuppdi.abc
Maske1: %titel% - %wort% - %test%-%name%.%endung%
Maske2: %name% - %test% - %titel% - %wort%.%endung%
Ausgabestring: Wuppdi - Bla - Hallo - Du.abc
^(\w+) - (\w+) - (\w+)-(\w+).([a-zA-Z0-9]+)$

Evtl. irgend so was.

Edit: Du könntest es natürlich auch noch auf Wortgrenzen etc. erweitern, aber da ist immer die Frage, ob das für den aktuellen Fall Sinn macht.

Edit2: Fehler korrigiert.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
derHund

Registriert seit: 15. Jun 2005
4 Beiträge
 
#5

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:46
der punkt muß noch maskiert werden.

also, statt . sollte \. verwendet werden.
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#6

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:47
Zitat von derHund:
der punkt muß noch maskiert werden.
Stimmt.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:50
und wie muss das Template aussehen damit das richtig eingesetzt wird?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#8

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 13:53
Zitat von glkgereon:
und wie muss das Template aussehen damit das richtig eingesetzt wird?
Aso, das gibt's ja auch noch.

Code:
$4 - $3 - $1 - $2.$5
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 14:42
ich hab mal versucht folgendes zu basteln:

ein user gibt ja lieber %%Titel%% und %%Album%% statt (\w+) und $1 ein...daher möchte ich "userfreundlich" in "programmfeundlich" konvertieren

dazu hab ich folgenden code...und der sollte funzen!!!
Edt_Simple_InMask ist ein string wie 'ab - %%cd%% - ef'
Edt_Simple_OutMask ist ein string wie '%%cd%% - ab - ef'
wobei die "variablen" dadrin gleich sein müssen...

Edt_Template enthält nachher das Template
Edt_Struktur enthält nachher die "suchformel" oder wie immer man das nennen soll...

ich muss noch "spezialvariablen" einbauen (zb. für dateiendung...)

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var Vars: TStringList;
    InMask, OutMask, AktVar: String;
    NextPos: Integer;
begin
  InMask:=Edt_Simple_InMask.Text;
  OutMask:=Edt_Simple_OutMask.Text;
  Vars:=TStringList.Create;
  while Pos('%%',InMask)>0 do
    begin
    NextPos:=Pos('%%',InMask);
    Vars.Add(copy(InMask,NextPos+2,PosEx('%%',InMask,NextPos+2)-NextPos-2));
    Delete(InMask,NextPos,PosEx('%%',InMask,NextPos+2)+2-NextPos);
    Insert('(\w+)',InMask, NextPos);
    end;
  Edt_Struktur.Text:='^'+InMask+'$';


  while Pos('%%',OutMask)>0 do
    begin
    NextPos:=Pos('%%',OutMask);
    AktVar:=copy(OutMask,NextPos+2,PosEx('%%',OutMask,NextPos+2)-NextPos-2);
    Delete(OutMask,NextPos,PosEx('%%',OutMask,NextPos+2)+2-NextPos);
    Insert('$'+IntToStr(Vars.IndexOf(AktVar)+1),OutMask, NextPos);
    end;

  Edt_Template.Text:=OutMask;

  Vars.Free;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: Reguläre Ausdrücke...wie?

  Alt 16. Jun 2005, 18:19
was heisst es wenn Exec False zurückibt?
»Unlösbare Probleme sind in der Regel schwierig...«
  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 15:40 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