有许多字符串,由不同数量的子字符串组成。
所有子字符串都用空格分隔。
第一个子字符串总是以 '>' 开头,之后可能还有几个字符。
除了最后一个,其余的都放在方括号中,里面有必要的数据,格式为“[key=value]”,value可以包含空格。这些子串可以交换。最后一个子字符串是一组不间断的大写拉丁字符。
需要从这个集合中选择几个必要的子串,放到一个类对象中
行示例:
>dfg|sf_sdfg0.1 [gene=aziz] [musor1=otyuj] [musor2=fsdgk] [protein=73545] KHGDBSS
>vgv|kjs_u9.5_W [protein=pivo vkusno] [musor3=dsfg] [gene=mama] LJDFSGJKHKGJGKB
您需要拔出 keygene=和protein=最后一行
. 输出应该是一个字符串数组:
{"aziz", "73545", "KHGDBSS"}
{"mama", "pivo vkusno", "LJDFSGJKHKGJGKB"}
如果字符串没有 key gene=,则必须跳过它。
PS 现在有一个工作变体,在检查行的出现和提取索引的堆上。它工作缓慢,恐怕要加快它需要“正则表达式”,我还不是朋友,或者其他一些我什至不知道的尖锐技巧。
UDP忘记补充了,属性行总是从新行开始,写在一行中,大写拉丁文的最后部分总是从下一行开始,分成70个字符的块。
>idf|sdf [attr1=x] [attr2=y] [attr3=z]
DFG..DFF // 70 символов
DRF..RGE // 70 символов
WEL..TRT // 70 символов
RRG // Остаток переноса
我不知道它会比你的工作快多少,我没有见过,但显然没有很多检查。