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
Ik geloof dat deze doet wat jij bedoelt:
<?PHP
function tussen_haakjes($input)
{	$output = substr(preg_replace('/\)(.*?)\(/',' ',')' . $input . '('),1,-1);
	return($output);
}
$invoer  = 'Deze (grammatica zin) klopt (niet)';
$uitvoer = tussen_haakjes($invoer);
echo($uitvoer); // grammatica zin niet
echo("\r\n");
$invoer  = '(Ik) (ga) ^vanavond^ [mee]';
$uitvoer = tussen_haakjes($invoer);
echo($uitvoer); // Ik ga
?>

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.
Bedankt! Het werkt
Dit kun je ook eenvoudig oplossen met een enkele regex, de methode van Ferry is vrij omslachtig:

<?php
$string = "Een (string met) haakjes (erin)";

preg_match_all('_\(([^\)]+)\)_is', $string, $matches);
echo implode(' ', $matches[1]); // string met erin
?>
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.
[offtopic]@Jelmer: precies dezelfde regex :-)[/offtopic]
Wat is de verschil tussen die 2 functies?
preg_match() houd op als er 1 keer gematched is
preg_match_all() houd alleen op als er niets meer kan worden gematched

Of wel:

preg_match() haalt 1 keer "aap" uit een stuk tekst
preg_match_all() haalt alle (apen) "aap" uit een stuk tekst
nu snap ik waar _all vandaan komst. Bedankt!

Reageren