Regex-Problem

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Ghostwalker
Mitglied
Beiträge: 23
Registriert: 06.01.2004 11:41
Kontaktdaten:

Regex-Problem

Beitrag 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:)
Ghostwalker
Mitglied
Beiträge: 23
Registriert: 06.01.2004 11:41
Kontaktdaten:

Beitrag von Ghostwalker »

Hat sich erledigt:)
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

?! Mit strpos() oder wie?
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag von Jensemann »

Mit 2 explode, einmal nach [ und einmal nach ], dann in ein array zusammenbasteln.
Ghostwalker
Mitglied
Beiträge: 23
Registriert: 06.01.2004 11:41
Kontaktdaten:

Beitrag 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.:)
Antworten

Zurück zu „Coding & Technik“