Javascript 仅当后跟某个字符串时才按分隔符拆分
我有一个字符串Javascript 仅当后跟某个字符串时才按分隔符拆分,javascript,string,split,Javascript,String,Split,我有一个字符串“值。组件\u类别:monstor\u客户端,维度。池:rpool1,维度。环境:prod,值。错误\u说明:由于输入结束,没有要映射的内容↵ 在[来源:java.io。StringReader@2ef452e5;行:1,列:1],值。事件类别:健康“ 并尝试将其拆分为,仅当其后跟字符串值或维度。因为在中有另一个,;第1行,第1列,我想转义一下 我尝试使用regex.split(/,?(值|维度)。/) 预期产出: [ "values.component_category:m
“值。组件\u类别:monstor\u客户端,维度。池:rpool1,维度。环境:prod,值。错误\u说明:由于输入结束,没有要映射的内容↵ 在[来源:java.io。StringReader@2ef452e5;行:1,列:1],值。事件类别:健康“
并尝试将其拆分为,
仅当其后跟字符串值
或维度
。因为在中有另一个,
;第1行,第1列
,我想转义一下
我尝试使用regex.split(/,?(值|维度)。/)
预期产出:
[
"values.component_category:monstor_client",
"dimensions.pool:rpool1",
"dimensions.env:pord",
"values.error_description:No content to map due to end-of java.io.StringReader@2ef452e5; line: 1, column: 1]",
"values.incident_category:health"
]
尤其需要使用前瞻性,例如:,(?=values | dimensions)
尤其需要使用前瞻,例如:
,(?=values | dimensions)
您可以使用数组。reduce
和String.split()
来实现这一点:
var str=“values.component\u类别:monstor\u客户端,维度。池:rpool1,维度。环境:prod,值。错误\u说明:由于输入结束,没有要映射的内容↵ 在[来源:java.io。StringReader@2ef452e5;行:1,列:1],值。事件_类别:健康”;
var arr=str.split(/,(?=值|尺寸)/);
var结果=arr.reduce((a,val)=>{
var key=val.substring(0,val.indexOf(“:”);
var值=val.substring(val.indexOf(“:”)+1)
a[键]=值;
返回a;
},{});
控制台日志(结果)
您可以使用Array.reduce
和String.split()
var str=“values.component\u类别:monstor\u客户端,维度。池:rpool1,维度。环境:prod,值。错误\u说明:由于输入结束,没有要映射的内容↵ 在[来源:java.io。StringReader@2ef452e5;行:1,列:1],值。事件_类别:健康”;
var arr=str.split(/,(?=值|尺寸)/);
var结果=arr.reduce((a,val)=>{
var key=val.substring(0,val.indexOf(“:”);
var值=val.substring(val.indexOf(“:”)+1)
a[键]=值;
返回a;
},{});
控制台日志(结果)
你自己试过什么?@Rahul我试过.split(/,?(值|维度)。/)
像,
一样,只有在它后面跟着值或维度时,你的正则表达式末尾缺少一个g标志。您的解决方案看起来像我找到了正确的正则表达式.split(/,(?=values | dimensions)/)
。这对我有用你自己尝试过什么?@Rahul我尝试过。split(/,?(values | dimensions)。/)
类似于,
的split by,
仅当它后面跟有value
或dimensions
时,你的正则表达式末尾缺少一个g标志。您的解决方案看起来像我找到了正确的正则表达式.split(/,(?=values | dimensions)/)
。这对meI有效删除了大括号,对我有效/,(?=值|尺寸)/
好的,谢谢你的反馈。我更新了答案。请随意将其标记为正确,以指出问题的解决方案。我拆下了大括号,它对我有效/,(?=values | dimensions)/
好的,谢谢您的反馈。我更新了答案。请随意将其标记为正确,以指出问题的解决方案。