preg_split逗号不在括号内

时间:2009-12-31 22:29:31

标签: php regex csv preg-split

测试字符串:

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

期望的输出:

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

我不介意这些子配料是否与原始产品一起出现(即“蒙特里杰克奶酪(牛奶,奶酪文化,盐)”),我只是不想让它们自己因为它们不是'添加成分。

我在这里发现了一些其他问题,我尝试应用于我的问题,但我从未得到预期的输出。

哦,如果preg_split不是以PHP为中心的,我正在使用PHP。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我会首先删除所有括号及其内容:

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

然后preg_split()继续使用逗号。这假定括号不是嵌套的。

如果括号可以嵌套,那么你需要多次运行嵌套级别。每次都会删除最里面的括号。