Moderator |
|
Wijnand schreef: een waarde uit een string te nemen.
Mja, opvragen, niet vervangen of verwijderen.
Opvragen doe je met preg_match:
<?php
$input = '16 - (8 prints)';
preg_match('#^[0-9]+ - \(([0-9]+) prints\)$#', $input, $matches);
echo '<pre>'.print_r($matches, true).'</pre>';
// de gewenste waarde zit na afloop in $matches[1] als de "patroonherkenning" was gelukt
?>
<?php $input = '16 - (8 prints)'; preg_match('#^[0-9]+ - \(([0-9]+) prints\)$#', $input, $matches); // de gewenste waarde zit na afloop in $matches[1] als de "patroonherkenning" was gelukt ?>
De topicstarter wil volgens mij weten welke waarde "$1" hééft, niet "$1" vervangen door iets anders ($value)... Ik zie niet hoe je dat met jouw code kunt doen?
Lees de oorspronkelijke vraag nog eens:
invoer: 16 - (8 prints)
uitvoer: 8
invoer: 12 - (2 prints)
uitvoer: 2
invoer: 115 - (10 prints)
uitvoer: 10
Algemeen:
invoer: X - (Y prints)
uitvoer: Y
En als je die string dan toch zelf aan het opbouwen was, zou ik dat niet met preg_replace doen . |