Domanda

stringa di prova:

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

output desiderato:

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

Non mi importa se i sub-ingredienti appaiono con la voce originale (vale a dire, "Monterey Jack formaggio (latte, la cultura del formaggio, il sale)"), solo che non li vogliono sul proprio perché aren' t aggiunto ingredienti.

Ho trovato un paio di altre domande qui che ho cercato di applicare al mio problema, ma non ho mai avuto i risultati attesi.

Oh, e nel caso in cui non sia preg_split PHP-centric, sto usando PHP.

Grazie in anticipo!

È stato utile?

Soluzione

Vorrei prima rimuovere tutte le parentesi ei loro contenuti:

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

e poi preg_split() sui restanti virgole. Questo presuppone che le parentesi non sono nidificate.

Se parentesi possono essere nidificate, allora si avrà bisogno di eseguire questo tante volte quanti sono i livelli di nidificazione. Ogni volta, verrà rimossa la parentesi più interna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top