我使用下面的正则表达式将逗号基础上的字符串拆分成数组, 这完全没问题。
TypeError: this.$firebase is undefined[Learn More]
问题是它总是添加一个空字符串作为数组的最后一项。我不想要这个。请帮忙。
答案 0 :(得分:3)
您的第一个捕获组包含一个*
- 量化的非捕获组,因此可以为空。为避免这种情况,您需要使用+
量词使其至少匹配一次。
push @array, $1 while $string =~ /
((?:
[^(),]+ |
( \(
(?: [^()]+ | (?2) )*
\) )
)+) # < HERE
(?: ,\s* | $)
/xg;