如果文本文件中有以下行:
5 HIV serotype 2
3838 28282 4949
383 292 1012
10 SIV unknown serotype
3939 433 332 3222 122
3221 222 345 433 393 303
…我想从5个HIV血清型线以下和10个SIV未知血清型线以上提取数字,我假设以下方法可行:
import re
with open('test.dat', 'r') as f:
line = line.strip()
if re.match('\d\s+HIV.*?(\d+)', line, re.MULTILINE):
print(re.match())
但是,什么也没有返回。你知道吗
谢谢你。你知道吗
如果您非常确定这些行以这种格式存在于您的文件中,那么您就不需要regex了。只需使用
takewhile
和dropwhile
模块中的itertools
函数即可:注意,在处理大数据时,his是一种非常优化内存和运行时的方法。你知道吗
使用
re.findall
和re.search
。re.search
完成匹配HIV
部分的工作,其中re.findall
从匹配的部分中选择数字。你知道吗尝试以下代码(解释为注释):
'文件的输出'血清型.txt'包含许多文本块:
相关问题 更多 >
编程相关推荐