JavaScript:拆分字符串而不拆分子字符串
我有一个字符串如下所示:JavaScript:拆分字符串而不拆分子字符串,javascript,string,split,Javascript,String,Split,我有一个字符串如下所示: var str = "'1vK3KfqgSHqv5Y0066FnIY',#41,$,$,(#149,#488,#862,#945,#1028,#1249),#114"; 通常我会: str.split(","); 但这将导致: [ "'1vK3KfqgSHqv5Y0066FnIY'", "#41", "$", "$", "(#149", "#488", "#862", "#945",
var str = "'1vK3KfqgSHqv5Y0066FnIY',#41,$,$,(#149,#488,#862,#945,#1028,#1249),#114";
通常我会:
str.split(",");
但这将导致:
[
"'1vK3KfqgSHqv5Y0066FnIY'",
"#41",
"$",
"$",
"(#149",
"#488",
"#862",
"#945",
"#1028",
"#1249)",
"#114"
]
鉴于预期结果是:
[
"'1vK3KfqgSHqv5Y0066FnIY'",
"#41",
"$",
"$",
"(#149, #488, #862, #945, #1028, #1249)",
"#114"
]
我怎样才能做到这一点呢?嗨,这里有一个正则表达式
str.match(/(\(.*?\)|[^\(,\s]+)(?=\s*,|\s*$)/g)
导致
[ '\'1vK3KfqgSHqv5Y0066FnIY\'',
'#41',
'$',
'$',
'(#149,#488,#862,#945,#1028,#1249)',
'#114' ]
如果字符串是
“'1vK3KfqgSHqv5Y0066FnIY',(#1,(#41,$),$,(#149,#488,#862,#945,#1028,#1249),#11),#114”
?应该如何看待预期结果?您需要编写某种类型的客户解析器来解释括号。@RomanPerekhrest在这种情况下,它将是一个由3条记录组成的数组:[“1vK3KfqgSHqv5Y0066FnIY'”,(#1,(#41,$),$,(#149,#488,#862,#945,#1028,#1249),#11), “#114”]但我不认为IFC STEP文件(本文所基于的)具有这种结构。请提供检查结果的演示。似乎并非所有内容都已复制到Regexr,现在它可以工作了。谢谢