我正在尝试形成一个正则表达式,它将匹配一个“看起来”像数组的字符串。
- 必须以
[
,{
或(
- 必须以
]
,}
, 或)
- 开始和结束是否使用相同的括号无关紧要(例如
(....}
很好) - 项目以逗号分隔
- 所有空白类型都被忽略
- 必须接受空数组
我最初想出的是
'/\s*[\[|\{|\(]\s*\w+\s*[,\s*\w+]*\s*[\]|\}|\)]\s*/'
不幸的是,这不接受空数组。所以我尝试了另一个
'/\s*[\[|\{|\(][\s*\w+\s*]?[,\s*\w+]*\s*[\]|\}|\)]\s*/'`
这个允许空数组,但也允许在左括号后以逗号开头的数组(例如[, item, item]
)。
我目前正在做的是使用两个不同的正则表达式并检查一个或另一个匹配。另一个正则表达式类似于我在这里提到的第一个,但只允许在打开和关闭标记之间出现零个或多个空白字符。