以下に示すような多数の文字列で「taxid」の値を見つける必要があります。この特定の文字列の場合、「taxid」の値は「9606」です。私は他のすべてを破棄する必要があります。「taxid」はテキストのどこにでも表示できますが、常に「:」と数字が続きます。
score:0.86|taxid:9606(Human)|intact:EBI-999900
Pythonでこれの正規表現を書く方法。
>>> import re
>>> s = 'score:0.86|taxid:9606(Human)|intact:EBI-999900'
>>> re.search(r'taxid:(\d+)', s).group(1)
'9606'
複数のtaxidがある場合は、を使用re.findall
して、すべての一致のリストを返します。
>>> re.findall(r'taxid:(\d+)', s)
['9606']
for line in lines:
match = re.match(".*\|taxid:([^|]+)\|.*",line)
print match.groups()