var imput = function({
a: "val",
b: "${version}",
c: ["c"],
d: [],
e: [],
controls: ["con1,"con2",
"con3"
],
elements: []
});
我想获得控件“con1,con2.con3”的值 我试过这种模式
.*controls.*\[(.*)\]
当所有控件都在一行时它起作用 如果值是在分开的行中,我该怎么做?
答案 0 :(得分:1)
.
表示除换行符之外的任何字符。通常,您必须激活s
(单行)选项才能使其达到您想要的效果,但这在JS中不可用。
解决方法是将.
替换为类似[\s\S]
的内容,这意味着:任何字符都是空格,或者不是空格,这是相同的as 任何角色。
最终结果(略有改进):
controls\s*:\s*\[([\s\S]*?)\]
请注意,我使用了一个不合理的量词,以便一旦遇到]
,模式就会停止。
你甚至可以做到这一点:
controls\s*:\s*\[([^\]]*)\]
[^\]]
表示除]
以外的任何字符。
答案 1 :(得分:1)