使用正则表达式将带有标签的文本转换为有效的JSON

时间:2019-04-19 20:11:17

标签: javascript json regex regex-group audacity

我尝试转换从音频软件(听觉)导出的纯文本

0.147652    0.983684    noing_grf
2.316547    3.609503    boing_4r4

转换为有效的 json 对象格式,如下所示 enter image description here

{
    'noing_grf': { start: 0.147652, end: 0.983684 },
    'boing_4r4': { start: 2.316547, end: 3.609503 },
}

我尝试的模式是这个([^\t\n]+) 但是我认为我需要一个完整的例子来执行。

任何Regex专业人士都可以帮助我做到这一点,一点都不成功! 我的目标是从音频数据轨道中导出标签和片段,而不是加载js并转换为json格式,以像这样的API来管理 spriteAudio http://pixijs.io/pixi-sound/examples/sprites.html

1 个答案:

答案 0 :(得分:2)

您必须使用正则表达式来执行此操作吗? 您可以使用javascript(或任何其他编程语言)非常简单地完成此操作。

const data = `0.147652  0.983684    noing_grf
2.316547    3.609503    boing_4r4`;

const dictionary = {};
const lines = data.split("\n");
lines.forEach(line => {
    line = line.split("\t");
    dictionary[line[2]] = { start: line[0], end: line[1] };
});

结果字典将具有您想要的格式:

{
    noing_grf: { start: '0.147652', end: '0.983684' },
    boing_4r4: { start: '2.316547', end: '3.609503' }
}