我有这句话:
Objet[id=100,name=car,type=grey,source=sourceId{id=12,version=12},linked=true]
我想孤立平等的结果。这给了我类似的东西:
100
car
grey
sourceId{id=12,version=12}
true
正如你所看到的那样,困难是由于字段源,它也包含相等但我不想拆分它们。 (否则我会使用\w*(=)
。)
答案 0 :(得分:0)
正则表达式: /\w+=(\w+\{.*?\})|\w+=(\w+)/g
上述要求的解决方案可以在Perl one liner中轻松完成:
perl -le '$str = "Objet[id=100,name=car,type=grey,source=sourceId{id=12,version=12},linked=true]"; print "$2$1 " while ($str =~ /\w+=(\w+\{.*?\})|\w+=(\w+)/g);'
在Javascript中,请点击此处:https://regex101.com/r/wD0dL9/1。 您可以打印group2和group1以获得所需的结果。
答案 1 :(得分:0)
试试这个
var regexp = /[a-zA-Z]+=(\w+{*(?:[a-zA-Z]+=*[\w=,]*)?}*),*/g;
演示:https://regex101.com/r/mM3dP2/3
比赛1:100
比赛2:car
比赛3:grey
比赛4:sourceId{id=12,version=12}
比赛5:true