Door
Carlo boy
op 21-09-2010 17:56
gewijzigd op 21-09-2010 17:58
3.500 views
Hallo, hoe krijg je de inhoud tussen ( en ) te zien?
Er zijn meerdere van deze ‘dingen’ en het wilt niet lukken.
een voorbeeld wat ik wil bereiken:
Zin: (Ik) (ga) ^vanavond^ [mee]
Uitput: Ik ga
Maar als de zin zo is:
Zin: Deze (grammatica zin) klopt (niet)
Moet de uitput: grammatica zin niet
Komen te staan.
Snappen jullie me?
ps: Ja, het gaat over gramatica. Maak er aub geen nederlands les van :P heb er op school al een hekel aan
PS: uitleg:
Deze functie plaatst eerst ')' aan de linkerkan en '(' aan de rechter kant, vervolgens vervangt hij alle tekens tussen ')' en '(' door spaties en daar naa haalt de de overtolige spaties aan de linker en rechter kant weg.
Of met [php]preg_match_all[/php] door alles wat binnen haakjes (en wat zelf geen haakjes bevat) te matchen:
<?php
$zin = '(Ik) (ga) ^vanavond^ [mee]';
preg_match_all('/\(([^\)]+)\)/', $zin, $matches);
foreach ($matches[1] as $woord)
{
echo $woord . '<br>';
}
?>
uitleg pattern:
[code]
/ begin expressie
\( match haakje
( begin bewaren in $matches[1]
[^)] match een teken dat niet een ')' is
+ vorige pattern match zo vaak mogelijk (dus zo vaak mogelijk een teken dat niet een ')' is)
) bewaar tot aan hier
\) match sluit-haakje
/ einde expressie
[/code
$matches[0] bevat nu alle stukjes uit $zin die je hele expressie matchten, $matches[1] bevat alle stukjes die je met ( en ) in de expressie bewaart hebt.