Mam taki tekst i chce z niego wydobyć to co jest zawarto pomiędzy nawiasami {}
  1. $text = "{Jest|Będzie} jutro {fajnie|super|niefajnie} a dziś jest
  2. {pochmurno {deszczowo|śnieżnie} słonecznie|upalnie}";
  3.  
  4. $pattern = '/(\{.*?\})/i'; //nie chciwy
  5. preg_match_all($pattern, $text, $matches);
  6.  
  7. foreach ($matches as $value) {
  8. echo $value[0]; //zwraca {Jest|Będzie} OK
  9. echo $value[1]; //zwraca {fajnie|super|niefajnie} OK
  10. echo $value[2]; //zwraca {pochmurno {deszczowo|śnieżnie} nie OK ucina wyrażenie
  11. }


Dla takiego wyrażenia z kolei:
  1. $pattern = '/(\{.*\})/i'; //chciwy
  2. preg_match_all($pattern, $text, $matches);
  3.  
  4. foreach ($matches as $value) {
  5. echo $value[0]; //zwraca {Jest|Będzie} jutro {fajnie|super|niefajnie} nie OK
  6. echo $value[1]; //zwraca {pochmurno {deszczowo|śnieżnie} słonecznie|upalnie} nie OK ale jest całe wyrażenie
  7. }