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

Convert text with tabs to a valide JSON with regex

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

0.147652    0.983684    noing_grf
2.316547    3.609503    boing_4r4

像这样的有效 json objet 格式

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

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

任何 Regex pro 都可以帮助我做到这一点,我根本没有成功! 我的目标是从音频数据轨道导出标签和区域,而不是加载 js 并以 json 格式转换以管理 spriteAudio,就像这样 API。 http://pixijs.io/pixi-sound/examples/sprites.html

您必须使用正则表达式来执行此操作吗? 您可以在 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' }
}