我有类似的东西,
tr|F2EF46|F2EF46_HORVD 210753
sp|K7W3E0|K7W3E0_MAIZE 21032
我需要在单独的文件中打印只有ID的内部| |,
F2EF46
K7W3E0
此脚本查找模式,但如何仅打印ID?
import re
o=open('result.txt','w')
with open('input.txt','rb') as f:
for line in f:
if re.findall(r'([a-z][a-z])(\|[a-z0-9]*.*)\|', line):
line = line.strip()
line = line.rstrip()
line = re.sub('(\|[a-z0-9]*.*)\|', '', line)
line = re.sub('\|', '', line)
query_id = line
f.write(query_id+'\n')
o.write(line)
答案 0 :(得分:1)
这里你不需要正则表达式:
id = line.split('|')[1])
虽然如果你真的想使用正则表达式,那么你可以这样做:
id = re.search('(\|)(.*?)(\|)', line).group(2)
不要使用id
作为变量名称,它是一个内置函数,您可以覆盖它。
答案 1 :(得分:1)