Reguliere expressies

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Plaats reactie
ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Reguliere expressies

Bericht door ElbertF » 10 feb 2006, 11:26

Ik wil met reguliere expressies voor elkaar krijgen dat alle '#'-tekens in een string worden vervangen met opeenvolgende cijfers. Dus '# # #' wordt dan '1 2 3'. Maar str_replace() en preg_replace() vervangen alle '#'-tekens tegelijk i.p.v. één voor één. Welke functie kan ik hier voor gebruiken?

Code: Selecteer alles

	$string = '# # #';
	
	for ( $i = 1; $i <= substr_count($string, '#'); $i ++ )
	{
		$string = preg_replace('/#/', $i, $string);
	}
Output: '1 1 1', verkeerd dus..

Gebruikersavatar
-=|Rik|=-
Berichten: 815
Lid geworden op: 02 jan 2004, 19:49
Locatie: Eindhoven

Bericht door -=|Rik|=- » 10 feb 2006, 13:19

preg replace vervangt in een keer alle # dus vandaar dat het niet werkt.
-=|Rik|=- kan schadelijk zijn voor de gezondheid.
Krijg toch allemaal de kolere, val voor mijn part allemaal dood.

ElbertF
Berichten: 5803
Lid geworden op: 12 okt 2004, 08:34
Contacteer:

Bericht door ElbertF » 10 feb 2006, 21:27

De vraag was niet waarom het niet werkt, maar hoe het wél werkt..?

Plaats reactie