Ik probeer een Regular expression te maken, er moet namelijk een split worden uitgevoerd bij een &-teken maar alleen als daarop volgend niet nog een &-teken staat.
Dus String: 1&2&3&hoi&&jaja
moet dit worden 1,2,3,hoi&&jaja
Met ^ en & kun je toch het begin en einde van de gezochte string opgeven?
Nee, met ^ aan het begin van een regex geef je het begin van de string aan, en met $ het einde. ^ in een character class context is een negate teken (alles behalve..).
Excuus voor de vorige oplossing. [^&] Matched alles behalve het & teken, terwijl het helemaal niets moet matchen. De oplossing was het gebruik van look-ahead en look-behind negative assertions:
Getest en het werkt:
<?
$string = "1&2&3&hoi&&jaja";
$aWaarden = preg_split("/(?<!&)&(?!&)/", $string);
print_r($aWaarden);
?>