【发布时间】:2015-01-20 20:14:58
【问题描述】:
我有类似下面的字符串
MATH 2822 or (PHYS 1939 and PHYS 1238)
MATH 2881 and (CHEM 2184 or PHYS 1000)
MATH 2881 and (CHEM 2184 or PHYS 1000) or ELEC 2921
MATH 2881 and ELEC 2921
基本上我想在他们身上做一个explode() 来分割需求,但是爆炸不应该影响括号内的任何东西。
例如:
$str = MATH 2881 and (CHEM 2184 or PHYS 1000) or ELEC 2921
/* explode on "or" result as follows */
$arr[0] = Math 2881 and (CHEM 2184 or PHYS 1000)
$arr[1] = ELEC 2921
如您所见,它不应该拆分括号内的两个元素。
什么是这样做的好方法?
【问题讨论】:
-
学习正则表达式的时间
-
是的,希望不会这样
-
explode()- PHP 的诅咒,被无情地过度使用。另见PHP: split string on comma, but NOT when between braces or quotes?