我需要在類似於下面給出的大量字符串中找到「taxid」的值。對於這個特定的字符串,「taxid」值是'9606'。我需要放棄其他一切。 「taxid」可能出現在文本的任何地方,但總是後面跟着一個「:」,然後是數字。python正則表達式替換
score:0.86|taxid:9606(Human)|intact:EBI-999900
如何在python中編寫正則表達式。
我需要在類似於下面給出的大量字符串中找到「taxid」的值。對於這個特定的字符串,「taxid」值是'9606'。我需要放棄其他一切。 「taxid」可能出現在文本的任何地方,但總是後面跟着一個「:」,然後是數字。python正則表達式替換
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'
如果有多個taxids,使用re.findall
,它返回所有匹配的列表:
>>> re.findall(r'taxid:(\d+)', s)
['9606']
for line in lines:
match = re.match(".*\|taxid:([^|]+)\|.*",line)
print match.groups()
是否有多個'taxid's?另一方面,您的描述不是替代品,而是搜索。 – sapht
是的,這是可能的 – Curious