Seite 1 von 1

Regex-Problem

Verfasst: 14.04.2004 13:35
von Ghostwalker
Hallo,

also irgendwie krieg ichs nicht gebacken.

Ich möchte folgenden Text:

Code: Alles auswählen

Am Anfang ein normaler Text. [b:3d16ab82ce]Fett[/b:3d16ab82ce]schrift [i:3d16ab82ce]Italic[/i:3d16ab82ce]schrift [u:3d16ab82ce]Underline[/u:3d16ab82ce]schrift [b:3d16ab82ce]Fett2 [/b:3d16ab82ce] schrift [i:3d16ab82ce]Italic2 [/i:3d16ab82ce]schrift [u:3d16ab82ce]Underline2 [/u:3d16ab82ce]schrift [quote:3d16ab82ce] Ein Text der gequotetd worden ist. Sogar mit mehr als einer Zeile [/quote:3d16ab82ce] [code:1:3d16ab82ce] Procedure Quelltext(Var text:string); begin end; [/code:1:3d16ab82ce] [list:3d16ab82ce] [*:3d16ab82ce]Listenelement 1 [*:3d16ab82ce]Listenelement 2 [/list:u:3d16ab82ce] [list=1:3d16ab82ce] [*:3d16ab82ce]Listenelement [*:3d16ab82ce]Listenelement [/list:o:3d16ab82ce] [img:3d16ab82ce]http://www.test.de/images/logo_norm.jpg[/img:3d16ab82ce] [url=http://www.test.de]http://www.test.de[/url] Zum Abschluß noch ein normaler Text.
so zerlegen das ich ihn so

Code: Alles auswählen

     array(0)=>Am Anfang ein normaler Text. 
     array(1)=>[b:3d16ab82ce]
     array(2)=>Fett
     array(3)=>[/b:3d16ab82ce]
        :
zurückkrieg (als Array). Aber irgendwie stell ich mich zu dusselig an. Kann mir da jemand helfen ?

P.S. am günsigsten denk ich dürfte preg_match_all sein...laß mich aber gern eines besseren belehren:)

Verfasst: 15.04.2004 22:22
von Ghostwalker
Hat sich erledigt:)

Verfasst: 16.04.2004 09:24
von Jensemann
weis ja nich wie du das gemacht hast, aber ich würde das ohne regexp "zu fuß" programmieren, ist in diesem fall recht einfach und nicht so CPU intensiv.

Verfasst: 16.04.2004 10:22
von itst
?! Mit strpos() oder wie?

Verfasst: 16.04.2004 11:06
von Jensemann
Mit 2 explode, einmal nach [ und einmal nach ], dann in ein array zusammenbasteln.

Verfasst: 17.04.2004 07:35
von Ghostwalker
Das ganze sieht bei mir wie folgt aus:

Code: Alles auswählen

  $matches=preg_split("#\[|\]#i",$message,-1,PREG_SPLIT_NO_EMPTY);
Danach muß ich lediglich bei Befehlen die [] wieder ranhängen und feddich.:)