私はレシピの材料のリストを処理しています。その例は次のようになります。
ピーナッツ、小麦澱粉、植物油、変性澱粉、砂糖、ムンバイスパイスフレーバー[オニオンパウダー、ハーブとスパイス(クミン、カレー粉、チリパウダー、コリアンダー)、ガーリックパウダー、塩化カリウム、酵母エキス、酵母パウダー(グルテンと大麦)、クエン酸、香料(大麦、大豆、小麦、セロリを含む)]、米粉、塩、色(濃縮ビートルートジュース、クルクミン、パプリカエキス)。
各成分をコンマで区切った配列(PHPを使用)に分解したいと思います。私が抱えている問題は、いくつかの成分が細分化されていることです。この例では、「ムンバイスパイスフレーバー」のコンポーネントは角かっこで区切られ、いくつかの材料が含まれています。副成分は通常の角かっこで区切られています。
標準:
explode(",", $recipeStr)
非常に厄介な結果が得られるので、オプションの角かっことオプションのサブかっこを考慮して、各個別の要素を配列に分解する正規表現ステートメントを探しています。また、角かっこ内にネストされていない角かっこを処理できる必要があります。
望ましい結果は、次のような配列リストになります。
-Peanuts
-Wheat Starch
-Vegetable Oil
-Modified Starch
-Sugar
-Mumbai Spice Flavour [Onion Powder, Herbs and Spices (Cumin, Curry Powder, Chilli Powder, Coriander), Garlic Powder, Potassium Chloride, Yeast Extract, Yeast Powder (contains Gluten and Barley), Citric Acid, Flavouring (contains Barley, Soya, Wheat, Celery)]
-Rice Flour
-Salt
-Colours (Concentrated Beetroot Juice, Curcumin, Paprika Extract)
私は正規表現の構文があまり得意ではないので、もし答えがあれば構文ロジックを説明していただければ幸いです。