首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegExp:用",“分隔行

RegExp:用",“分隔行
EN

Stack Overflow用户
提问于 2014-04-25 12:46:28
回答 2查看 105关注 0票数 0

如何转换

代码语言:javascript
复制
"one,cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1, 1), linear"

代码语言:javascript
复制
["one", "cubic-bezier(0, 0, 1, 1)", "cubic-bezier(0, 0, 1, 1)", "linear"]

多么?

JavaScript。

这可不一样。因为引号(左和右),这里(-左,)-右。

不要在JS工作。

代码语言:javascript
复制
'ease,cubic-bezier(0, 0, 1, 1), linear,2,3'.split(/,(?=[^()]*((|$))/gi); 

结果:

代码语言:javascript
复制
ease,(,cubic-bezier(0, 0, 1, 1),, linear,,2,,3
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-25 13:16:40

假设父类不能嵌套(在这种情况下,您将无法使用JS regex风味)。

试试这个:

代码语言:javascript
复制
,(?![^()]*\))

迅速崩溃:

代码语言:javascript
复制
,          # 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没有关闭的P轮4,而逗号和结束的paren 3之间没有任何paren时,才能匹配。

票数 3
EN

Stack Overflow用户

发布于 2014-04-25 13:48:48

根据您的例子:

代码语言:javascript
复制
var str = "one,cubic-bezier(0, 0, 1, 1), cubic-bezier(0, 0, 1, 1), linear";
var arr = str.split(/,\s*(?!\s*\d)/);
console.log(arr.toSource());

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

这是小提琴

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23293596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档