我想从以下列表' seg'
中检索DP的值 import re
seg = ['AC=2', 'AF=1.00', 'AN=2', 'DB', 'DP=6', 'FS=0.000',
'MLEAC=2', 'MLEAF=1.00', 'MQ=31.55', 'MQ0=0', 'QD=31.64']
for i in seg:
name = re.compile(r'DP=(.*)')
mo = name.search(i)
if mo:
print "True",mo
else:
print "no"
这给出了如下输出:
no
no
no
no
True <_sre.SRE_Match object at 0x00000000025DDCD8>
no
no
no
no
no
no
找到匹配但是为什么不给我DP值? 请帮助我,我是regex的新手
答案 0 :(得分:1)
mo
是一个对象。要获取DP值,请使用mo.group(1)
获取捕获组。这将返回6
,您可以使用int
解析该内容。
答案 1 :(得分:1)
解决方案不使用正则表达式
for i in seg:
if "DP=" in i:
x, dp = i.split("=")
print dp # You can see we captured the 6
dp
将包含您要查找的值。如果要保留它,可以将其附加到列表中。
如果你想继续使用正则表达式,你应该使用(作为另一个评论者说).group(0)
。您可以查看讨论here以获取更多信息。