Javascript中的正则表达式:要保存的组数未知

Javascript中的正则表达式:要保存的组数未知,javascript,regex,regular-language,Javascript,Regex,Regular Language,我有下面的tsv文件,我正在尝试分别从中读取和保存信息 下面是文件两行的示例: 文件的提取 13->7 3 270296:[T]1132070:[T]2807979:[T] 12->8 31 73108:[G]119227:[T]210429:[T]237902:[T]490699:[A]588160:[T]730687:[A]863532:[T]953590:[T]1207654:[T]1270425:[C]1315919:[C]1374547:[C]1787551:

我有下面的tsv文件,我正在尝试分别从中读取和保存信息

下面是文件两行的示例:

文件的提取

13->7   3   270296:[T]1132070:[T]2807979:[T]
12->8   31  73108:[G]119227:[T]210429:[T]237902:[T]490699:[A]588160:[T]730687:[A]863532:[T]953590:[T]1207654:[T]1270425:[C]1315919:[C]1374547:[C]1787551:[C]1872033:[G]1963836:[T]2112830:[A]2183936:[A]2464064:[T]2573449:[T]2594098:[T]2667677:[C]2815676:[T]2926565:[T]3019188:[T]3023991:[A]3097403:[A]3142179:[A]3180137:[C]3254219:[G]3265026:[G]
正如您所看到的,每一行都有最后一组的不同数量。我尝试了以下代码,但只保存了第一组:

准则草案:

var x = str.split('\n');
var regex = /([0-9]+)\t([0-9]+)\t(([0-9]+):.([ACGTN]).)+/g;
for (var i=0; i<x.length; i++) {
    line = regex.exec(x[i]);
    console.log(line);
    //Example for the first line
    //line[1] = 7
    //line[2] = 3
    //line[3] = 270296:[T]
    //line[4] = 270296
    //line[5] = T
    //that's it
}
想法2


有什么想法我已经错过了获得这提到的输出

如果我这样做,我会将正则表达式分成两部分——一部分用于前两个数字,另一部分用于数据——以便以后更容易理解。比如:

[T]参考[T]参考[T]参考[[T]参考[T]参考[T]参考[T]参考[T]参考[T]参考[T]参考[T]参考[T]参考[[T]参考[T]参考[[T]参考[[T]参考[T]参考[T]参考[[T]参考[[T]参考[T]参考[T]参考[T]参考[[[T]参考[[[[[T]参考[[[T]参考[[[[T]参考[T]参考[[[[[T]参考[[[T]参考[[[T]参考[[[[[[[T]参考[[T]参考[[[T]参考[[[T]参考[[[[[[T]参考[[T]参考[[[[[[T]参考]参考[[T]参考]参考[[[[[[[[[T]参考]参考[[[[[[[[[[T]参考]参考]参考]]19:[G]3265026:[G]' //记下数字和其他数字 让[num1,num2,data]=line.split(/\s+/g) //将其余部分解析为数组 data=data.match(/([0-9]+:\[[ACGTN]\])/g)
log(num1,num2,data)您在交互式正则表达式站点上尝试过您的问题吗?是的,我在发布问题之前就在那个网站上了。遗憾的是,它没有给我带来多少帮助。非常感谢!那正是我要尝试的!
line[3] = 270296:[T]
line[4] = 1132070:[T]
line[5] = 2807979:[T]
line[3] = 270296
line[4] = T
line[5] = 1132070
line[3] = T
line[4] = 2807979
line[5] = T