Chciałbym wyłapać wszystkie teksty, które są w nawiasach kwadratowych w tekście dawanego do wyrażeń regularnych, ale odrzucając takie, które są wewnątrz innych nawiasów kwadratowych i właśnie z tym mam problem. Kod oczywiście będzie wyglądał tak:

  1. <?php
  2. preg_match_all($pattern, $str, $out);
  3. ?>


Przykład nr 1:

Jeżeli $str = "ala ma [kota] i [psa]"
to powinno być:
out[0] = "kota";
out[1] = "psa";

Przykład nr 2:

Jeżeli $str = "ala ma [kota i [psa]], ale bardzo lubi [hipopotamy]"
to powinno być:
out[0] = "kota i [psa]";
out[1] = "hipopotamy";

Co do przykładu drugiego, to "psa" nie ma bo jest wewnątrz innego nawiasu.