找到适用于托管元数据格式的正则表达式

时间:2016-09-14 11:28:53

标签: javascript regex

使用Javascript,我得到这种类型的原始数据:

input = "GP0|#586fa4fb-32ad-422a-aaa2-a676df51302b\n\nL0|#0586fa4fb-32ad-422a-aaa2-a676df51302b|Consumer Goods\n\nGTSet|#cbadda79-7304-4902-b648-45b9dab70eb6"

input = "GP0|#60066230-11f1-46db-ad89-2b91ffd42ec4\n\nL0|#060066230-11f1-46db-ad89-2b91ffd42ec4|Processing\n\nGTSet|#cbadda79-7304-4902-b648-45b9dab70eb6\n\nGPP|#b6240ea6-ebbd-47ce-8516-d5208256b9d3\n\nGPP|#586fa4fb-32ad-422a-aaa2-a676df51302b"

我已尝试过以下正则表达式,但未获取处理或消费品

的值
var mmDataRegex = /#0[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]|(.*?)(GTSET|GP0|GPP|L0|$)/igm;
var match = mmDataRegex.exec(input);

请帮忙。

1 个答案:

答案 0 :(得分:1)

.*?与处理/消费品之后的换行符不匹配。尝试

[^|]*?

在捕获组内部。

修改

或者这是你真正想要的吗?

(?:GTSET|GP0|GPP|L0)\|#0[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]*\|(.*)

Check it here at regex101