正则表达式,用于分隔值列表,其中值可以包含分隔符

时间:2014-08-13 13:49:31

标签: javascript regex separator

我正在尝试捕获具有以下形式的字符串中的模式:item(options),item(options)等。 其中“item”是一个单词,options可以包含任何字符。 项目可能没有选项,因此字符串可以是“项目,项目,项目(选项),项目”。

到目前为止,我已经来了:

/(\w+(\(.+\))*)(,(\w+(\(.+\))*))*/

但这并没有真正起作用。我希望能够捕获所有结果,以便我可以轻松访问项目和选项。任何帮助将不胜感激!

修改: 我担心这是不可能的:如果“options”可以包含任何字符,比如“,”或“)”,那么就不能写出正确的正则表达式,是吗?

1 个答案:

答案 0 :(得分:1)

怎么样:

/
    \w+                 : one or more word characters
    (?:                 : start non capture group
        \([^)]+\)       : an open parens, some characters that are not parens, a close parens
    )?                  : this group is optional
    (?:                 : start non capture group
        ,               : a comma
        \w+
        (?:
            \([^)]+\)
        )?
    )*                  : 0 or more times the same pattern preceeded by a comma.
/x                      : allow comments in regex