如何转换

"one,cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1, 1), linear"




["one", "cubic-bezier(0, 0, 1, 1)", "cubic-bezier(0, 0, 1, 1)", "linear"]


怎么样?

JavaScript。

不一样因为引号(左右两边),这里是(-左,)-右。

不要在JS中工作。

'ease,cubic-bezier(0, 0, 1, 1), linear,2,3'.split(/,(?=[^()]*((|$))/gi);


结果:

ease,(,cubic-bezier(0, 0, 1, 1),, linear,,2,,3

最佳答案

假定parens无法嵌套(在这种情况下,您将无法使用JS regex风格)。

尝试这个:

,(?![^()]*\))


快速分解:

,          # match a comma                           [1]
(?!        # start negative look ahead               [2]
  [^()]*   #   match zero or more non-parens chars   [3]
  \)       #   match the closing paren               [4]
)          # stop look ahead


用简单的英语来说,将显示为:


  匹配逗号[1],前提是前面[2]前面没有结束括号[4],并且逗号和结束括号[3]之间没有任何括号

10-06 07:16