我有一个巨大的文件,看起来像这样:
CAV-1 ATCTACTTCTATCG
CAV-2 GCGCGTAGCTAGCT
CAV-2 AAGCGCTCGTAAAA
CAV-3 AAATATATATATCC
使用Python,我想删除具有重复字符串的行,在本例中是“CAV-2”。第一行保留字符串。我会得到这个:
CAV-1 ATCTACTTCTATCG
CAV-2 GCGCGTAGCTAGCT
CAV-3 AAATATATATATCC
我知道如何使用regex和通过行进行解析,但我不能完成这个特定的任务
我知道如何使用
用字典就行了
如果要保留第一行,可以使用列表字典,然后输出最后一个元素
您必须使用这样的捕获组
正则表达式:
((CAV-\d\s)[AGCT]+)(?:\n\2[AGCT]+)*
说明:
((CAV-\d\s)[AGCT]+)
检查您的模式并捕获整个匹配。在第二捕获组中捕获子匹配CAV-\d\s
(?:\n\2[AGCT]+)*
检查有多个子模式CAV-\d\s
在其中的出现最后用第一个被捕获的组替换整个比赛,即你的第一个模式
Regex101 Demo
Python代码(在Python 3.5.2中测试)
正如其他用户所指出的,regex并不是解决这个问题的最佳技术。您可以使用字典,然后删除重复项:
输出:
相关问题 更多 >
编程相关推荐