javascript - 分隔值列表的正则表达式,其中值可能包含分隔符

标签 javascript regex separator

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

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

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

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

编辑: 恐怕这是不可能的:如果“选项”可以包含任何字符,例如“,”或“)”,那么就无法编写正确的正则表达式,可以吗?

最佳答案

怎么样:

/
    \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

关于javascript - 分隔值列表的正则表达式,其中值可能包含分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25287967/

相关文章:

javascript - node.js Sequelize : multiple 'or' and 'and' operator

regex - Python 使用正则表达式替换短代码

python - 将逗号小数点分隔符转换为数据框内的点

c# - 用于类型 'MenuItem' 的样式不能应用于类型 'Separator'

javascript - 写入 element.style.visibility 对页面没有影响(相同的 ID 有不同的地址?)

javascript - 通过javascript为taglib设置属性

带有函数原型(prototype)的 Javascript 命名空间声明

java - 如何使用正则表达式替换字符串

python - 我可以使这个 (Python) 正则表达式更快吗?

swift - 类型 "localSearch"的值没有成员 "start"?