preg_split virgül içeride değil parantez

1 Cevap php

Testi dize:

Organic whole wheat bread, Monterey Jack Cheese (milk, cheese culture, salt), Hormel Natural Ham (salt, turbinado sugar, lactic acid (not from milk)

İstenilen çıktı:

Array ( 
        [0] => Organic whole wheat bread 
        [1] => Monterey Jack Cheese
        [2] => Hormel Natural Ham
      )

Onlar maddeler ilave edilmez, çünkü alt bileşenler özgün öğe (yani, "Monterey Jack peyniri (süt, peynir kültürü, tuz)") ile görünür eğer sakıncası yoksa, ben sadece kendi bunları istemiyorum .

Benim sorun için başvuran çalıştı burada bir çift diğer sorular buldum, ama beklenen çıkışı var asla.

Oh, ve vaka preg_split PHP-merkezli değil, ben PHP kullanıyorum.

Şimdiden teşekkürler!

1 Cevap

Ben her şeyden önce parantez ve içeriğini kaldırmak olacaktır:

$result = preg_replace('/\s*\([^()]+\)/', '', $subject);

ve ardından preg_split() kalan virgüller üzerinde. Bu parantez iç içe olmadığını varsayar.

Parantez iç içe olabilir eğer yuvalama seviyeleri olduğu gibi, o zaman bu kadar çok kez çalıştırmak gerekir. Her zaman, içteki parantez silinecektir.