PDA

Bekijk Volledige Versie : eregi_replace



Matthijs de Z
16/04/03, 16:05
Hoi,

als ik in een string twee comma's naast elkaar heb staan, wil ik die graag
vervangen door , ,
Maar als ik een string inhoud zoals

GTI HOLDING
,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29,,,, ,,,,,38.00,38.00,38.00,38.
00

heb, dan krijg ik als ik dit gebruik

$vullegeplaatsen = eregi_replace(",,",", ,",$achtereerstecomma);

deze output:

GTI HOLDING
,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29, ,,  ,, ,,&nbsp
;,,38.00,38.00,38.00,38.00

oftwel hij pakt de eerste twee comma's en de derde en vierde, maar niet die
tussen 2 en drie, terwijl die wel naast elkaar staan. Waarom pakt
eregi_replace die niet? En hoe kan ik er voor zorgen dat ie dat wel doet,
zonder er een twee eregi_replace over hen te gooien?
Groeten,

Matthijs

uws
16/04/03, 18:50
I <b7jnfo$1c84$1@nl-news.euro.net>, Matthijs de Z skrev:
> als ik in een string twee comma's naast elkaar heb staan, wil ik die graag
> vervangen door ,&nbsp;,
>
> $vullegeplaatsen = eregi_replace(",,",",&nbsp;,",$achtereerstecomma);

Waarom gebruik je eregi_replace hier? Doet str_replace() wel wat je
wilt?

--
Wouter web www.uwsworld.com mail uws@xs4all.nl

so i'll be your liqour demons will drown :: and float away -- placebo

Matthijs de Z
16/04/03, 19:35
> > $vullegeplaatsen = eregi_replace(",,",",&nbsp;,",$achtereerstecomma);
>
> Waarom gebruik je eregi_replace hier? Doet str_replace() wel wat je
> wilt?

Ik ga het straks eens even proberen. Ik heb het uiteindelijk op een hele
andere manier opgelost.
groeten,

Matthijs

>
> --
> Wouter web www.uwsworld.com mail uws@xs4all.nl
>
> so i'll be your liqour demons will drown :: and float away -- placebo

Daniel Tryba
16/04/03, 21:20
Matthijs de Z <haalallesvoorhetstreepjeplushetstreepjezelfweg-mldz@hotmail.com> wrote:
> ,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29,,,, ,,,,,38.00,38.00,38.00,38.00
> $vullegeplaatsen = eregi_replace(",,",",&nbsp;,",$achtereerstecomma);
> ,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29,&nbsp;,, &nbsp;,,&nbsp;,,&nbsp;,,38.00,38.00,38.00,38.00
>
> oftwel hij pakt de eerste twee comma's en de derde en vierde, maar niet die
> tussen 2 en drie, terwijl die wel naast elkaar staan. Waarom pakt
> eregi_replace die niet?

Omdat die functie niet recursief werkt. BTW zoals al opgemerkt is het
gebruik van een regexp zoals jij nu doet zonde van de processor tijd.

> En hoe kan ik er voor zorgen dat ie dat wel doet, zonder er een twee
> eregi_replace over hen te gooien?

Bestuudeer reguliere expressies. /,{2,}/,/g doet wat je wilt. Zie PCRE
pattern matching op php.net hoe jet precies dient te gebruiken.

--

Daniel Tryba

Matthijs de Z
16/04/03, 21:35
> Bestuudeer reguliere expressies. /,{2,}/,/g doet wat je wilt. Zie PCRE
> pattern matching op php.net hoe jet precies dient te gebruiken.

Bedankt, ik ga daar even rondsnuffelen.
Groeten,

Matthijs

>
> --
>
> Daniel Tryba

Lennart Kraak
16/04/03, 22:50
Matthijs de Z wrote:
> als ik in een string twee comma's naast elkaar heb staan, wil ik die graag
> vervangen door ,&nbsp;,
> Maar als ik een string inhoud zoals
>
> GTI HOLDING
> ,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29,,,, ,,,,,38.00,38.00,38.00,38.
> 00
>
> heb, dan krijg ik als ik dit gebruik
>
> $vullegeplaatsen = eregi_replace(",,",",&nbsp;,",$achtereerstecomma);
>
> deze output:
>
> GTI HOLDING
> ,38.00,0.29,0.25,0.20,0.12,0.30,0.30,0.30,0.29,&nbsp;,, &nbsp;,,&nbsp;,,&nbsp
> ;,,38.00,38.00,38.00,38.00
>
> oftwel hij pakt de eerste twee comma's en de derde en vierde, maar niet die
> tussen 2 en drie, terwijl die wel naast elkaar staan. Waarom pakt
> eregi_replace die niet? En hoe kan ik er voor zorgen dat ie dat wel doet,
> zonder er een twee eregi_replace over hen te gooien?

Hij doet toch precies wat je wilt?
Je hebt 9 ','s achter elkaar staat. Hij vervangt ',,' door ',&nbsp;,'.
Dat is dus 4x ',&nbsp,' . Daarna blijft er nog 1 ',' staan. Voila!

Lennart

Matthijs de Z
16/04/03, 22:50
> Hij doet toch precies wat je wilt?
> Je hebt 9 ','s achter elkaar staat. Hij vervangt ',,' door ',&nbsp;,'.
> Dat is dus 4x ',&nbsp,' . Daarna blijft er nog 1 ',' staan. Voila!

Ach..krijg nou wat. Ik ben ook wel lekker dom bezig!!! Ik zet er inderdaad
zelf nog een comma bij :-S ",&nbsp;,"
Ik ga even in de hoek zitten....
Mazzel,

Matthijs

> Lennart
>

uws
17/04/03, 00:35
I <b7k9mo$av5$1@news.tue.nl>, Daniel Tryba skrev:
> Bestuudeer reguliere expressies. /,{2,}/,/g doet wat je wilt. Zie PCRE
> pattern matching op php.net hoe jet precies dient te gebruiken.

Nee, die vervangt ,,,,,, als geheel, ipv in losse delen.

--
Wouter web www.uwsworld.com mail uws@xs4all.nl

from the time we intercepted :: feels more like suicide -- placebo

Daniel Tryba
17/04/03, 01:05
uws <uws@xs4all.invalid> wrote:
>> Bestuudeer reguliere expressies. /,{2,}/,/g doet wat je wilt. Zie PCRE
>> pattern matching op php.net hoe jet precies dient te gebruiken.
>
> Nee, die vervangt ,,,,,, als geheel, ipv in losse delen.

Tsja, slecht gelezen :)

--

Daniel Tryba