Javascript 将特定序列或其他所有内容与正则表达式匹配
一直在尝试在JS中使用正则表达式来拆分用户输入,如: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(/(\{.*?\})/) 你会得到这个 ["
"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}]。
(:?[^\{])+|(:?\{.+?\})