正则表达式简单拆分

时间:2015-11-24 11:34:46

标签: regex split

我有这句话:

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*(=)。)

2 个答案:

答案 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