考虑以下情况。我正在基于{tags}对字符串进行分割,这些大括号中间可以有任意数量的字符(和/或数字):
生成的数组($temp)如下:
然而,如果$string以标记结尾,例如:
显然,通过检查空值可以删除这些内容,但在我看来,这不是最优雅的方式。是否有另一种方法(例如使用正则表达式),使得结果数组中没有空元素?
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar} samet";
$temp = preg_split('/(\{.*?\})/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
生成的数组($temp)如下:
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] => samet
)
然而,如果$string以标记结尾,例如:
$string = "Lorem {FOO} ipsum {BAR} dolor {FOO:bar}";
然后生成的数组($temp)中包含一个空元素(在这种情况下是#6):
Array (
[0] => Lorem [1] => {FOO} [2] => ipsum [3] => {BAR}
[4] => dolor [5] => {FOO:bar} [6] =>
)
显然,通过检查空值可以删除这些内容,但在我看来,这不是最优雅的方式。是否有另一种方法(例如使用正则表达式),使得结果数组中没有空元素?