我正在尝试捕获具有以下形式的字符串中的模式:item(options),item(options)等。 其中“item”是一个单词,options可以包含任何字符。 项目可能没有选项,因此字符串可以是“项目,项目,项目(选项),项目”。
到目前为止,我已经来了:
/(\w+(\(.+\))*)(,(\w+(\(.+\))*))*/
但这并没有真正起作用。我希望能够捕获所有结果,以便我可以轻松访问项目和选项。任何帮助将不胜感激!
修改: 我担心这是不可能的:如果“options”可以包含任何字符,比如“,”或“)”,那么就不能写出正确的正则表达式,是吗?
答案 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