Javascript 将特定序列或其他所有内容与正则表达式匹配

Javascript 将特定序列或其他所有内容与正则表达式匹配,javascript,regex,Javascript,Regex,一直在尝试在JS中使用正则表达式来拆分用户输入,如: "Hi{user,10,default} {foo,10,bar} Hello" 进入: 到目前为止,我已经实现了用{.+?,?:.+?{2}}}{\w\d\s]+分割这些字符串,但是第二个捕获组太排他性了,因为我希望该组中的每个字符都匹配。试过了?但它当然失败了 regex大师的想法?使用以下方法: "Hi{user,10,default} {foo,10,bar} Hello".split(/(\{.*?\})/) 你会得到这个 ["

一直在尝试在JS中使用正则表达式来拆分用户输入,如:

"Hi{user,10,default} {foo,10,bar} Hello"
进入:

到目前为止,我已经实现了用{.+?,?:.+?{2}}}{\w\d\s]+分割这些字符串,但是第二个捕获组太排他性了,因为我希望该组中的每个字符都匹配。试过了?但它当然失败了

regex大师的想法?

使用以下方法:

"Hi{user,10,default} {foo,10,bar} Hello".split(/(\{.*?\})/)
你会得到这个

["Hi", "{user,10,default}", " ", "{foo,10,bar}", " Hello"]

注:{.*?}。这里的问号“?”在第一次匹配“}”时停止。

这是我提出的正则表达式:

(:?[^\{])+|(:?\{.+?\})

与上面的一样,它将该空间作为匹配项包含进去。

没有JavaScript专家,我建议如下:

使用{[^}、]*、[^}、]*、[^}、[^}、[^}、]*?}获取所有正匹配项 从原始字符串中删除所有正匹配项 把剩下的串分开
尽管如此,如果您需要按顺序获得结果值,这可能会变得很棘手。

这几乎就是我要寻找的,但我想在大括号之间强制执行3个参数规则,即,如果存在Hi{simple}{user,10,default},我希望结果是[Hi{simple},{user,10,default}]。
(:?[^\{])+|(:?\{.+?\})