【发布时间】:2015-07-16 19:53:52
【问题描述】:
我有一个从 VCF 文件中提取的长字符串,例如(这些被截断以用于示例目的):
chr1 11189845 COSM462604;COSM893813 G C,T 158.16 PASS AF=0,0;AO=0,0;DP=1201;FAO=0,0;FDP=1201;FR=.;
chr1 11190804 COSM180789 C T 134.06 PASS AF=0;AO=0;DP=1016;FAO=0;FDP=1018;FR=.;FRO=1018;
我想编写一个正则表达式来返回给定行上粮农组织的所有值。
FAO 的有效格式为:FAO=SomeNumber; 或 FAO=SomeNumber, SomeNumber, SomeNumber, etc...;
有没有办法编写一个 REGEX 捕获组,它同时考虑单个值和用逗号分隔的无限数量的值,直到看到 ';'?
我试过了
FAO=((([0-9]+);)|(([0-9]+),([0-9])+))
但它最多只考虑 2 个数字,我需要匹配器组 1 作为第一个值,匹配器组 2 作为第二个等等...
【问题讨论】:
-
你使用什么语言?
-
为什么必须在一个正则表达式中完成?我宁愿提取
FAO=和;之间的字符串并将其拆分为,标记。 -
此时不是特定于语言的问题,我只想解析标准正则表达式。我可以编写代码来执行此操作,但这无济于事,因为应用程序的性质要求输入有效的正则表达式和匹配器组的用户进行处理。
标签: regex