将字符串(基于逗号)拆分为数组会在列表末尾添加一个空项

时间:2018-04-25 23:10:49

标签: arrays regex perl split

我使用下面的正则表达式将逗号基础上的字符串拆分成数组, 这完全没问题。

TypeError: this.$firebase is undefined[Learn More]

问题是它总是添加一个空字符串作为数组的最后一项。我不想要这个。请帮忙。

1 个答案:

答案 0 :(得分:3)

您的第一个捕获组包含一个* - 量化的非捕获组,因此可以为空。为避免这种情况,您需要使用+量词使其至少匹配一次。

push @array, $1 while $string =~ /
        ((?:
          [^(),]+ |
          ( \(
            (?: [^()]+ | (?2) )*
          \) )
        )+)           # < HERE
        (?: ,\s* | $)
        /xg;