Kasper Johansen wrote in <3dad6612$0$22008$edfadb0f@dspool01.news.tele.dk>:
> Problemet opstår idet at når der er indsættes et billede bliver der i
> teksten tilføjet [IMG]billedenavn.jpg[/IMG]. Det erstatter jeg så via en
> ereg_replace-kommando så det virker. Men hvis der er to billede laver den
> den det helt forkert og laver et billede som kommer til at få en src'e
> efter det første [IMG] i min tekst og det sidste [/IMG] i min tekst.
>
> $in_text = eregi_replace(
> "\[IMG]([^*]+)\[/IMG]",
[^*] - det var en sjov én. :)
Jeg kan ikke lige forestille mig hvad det skulle gøre, ud over det samme som
bare et punktum. :)
Men nu er jeg heller ikke nogen regexp-ekspert.
Anyway, dit problem er plus-tegnet. Den er "greedy". Dvs. den tager så meget
med som overhovedet muligt.
du kan gøre sådan her:
"\[IMG]([^\[]+)\[/IMG]"
Så kan der ikke være "[" mellem [IMG] og [/IMG]
Alternativt kan man modificere "+" til at være non-greedy, men det kan så
vidt jeg husker ikke lade sig gøre med ereg.
Hvis du skifter til preg kan du modificere "+" til at være non-greedy ved at
indsætte et spørgsmålstegn bag efter, altså "+?".
--
Mvh.
Niels Andersen
(la nels. anersyn.)