我试图删除一个以SRR开头,以“length=varying numbers with a varying length”结尾的字符串。我只知道这个数字在1到200之间。。。你知道吗
我不知道怎么做,也不知道哪种方法最有效。我正在处理大文件(>;10GB)。你知道吗
我想对从1到200的所有值进行循环测试:
import os
import re
f2 = open(r'path')
num = 0
while num < 200:
num = num+1
ident2 = re.compile('SRR.*?%d' %num, re.DOTALL)
stuff = f2.read()
for line in f2:
ident2.sub('',stuff)
代码总的来说要长得多,但是是的,我确实在最后写了一些东西。我只是想知道我是否可以使用一个表达式,将考虑到每一个数字,并删除字符串。。。你知道吗
任何建议和建设性的批评都将不胜感激。你知道吗
我添加了一个文本输入示例:
@SRR566546.970 HWUSI-EAS1673_11067_FC7070M:4:1:2299:1109 length=50TTGCCTGCCTATCATTTTAGTGCCTGTGAGGTGGAGATGTGAGGATCAGT+SRR566546.970 HWUSI-EAS1673_11067_FC7070M:4:1:2299:1109 length=50hhhhhhhhhhghhghhhhhfhhhhhfffffe`ee[`X]b[d[ed`[Y[^Y
这都是一行,我有许多类似的序列重复。你知道吗
仅匹配数字:
\d
匹配字符0-9,{1,3}
匹配其中1到3个字符。你知道吗如果不想匹配以
SRR
开头然后后跟大于200的数字的任何内容,可以创建一个更挑剔的表达式:匹配1到9之间的一位数,或10到99之间的两位数,或100到199之间的三位数,或数字200。你知道吗
这些表达式都不能阻止匹配后面跟着更多的数字。您可能需要将
\b
边界锚点添加到表达式的末尾:对于您发布的示例,我将显式地包含
length=
参数:相关问题 更多 >
编程相关推荐