0

以下に示すような多数の文字列で「taxid」の値を見つける必要があります。この特定の文字列の場合、「taxid」の値は「9606」です。私は他のすべてを破棄する必要があります。「taxid」はテキストのどこにでも表示できますが、常に「:」と数字が続きます。

score:0.86|taxid:9606(Human)|intact:EBI-999900

Pythonでこれの正規表現を書く方法。

4

2 に答える 2

4
>>> 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']
于 2012-09-17T20:18:20.880 に答える
0
for line in lines:
    match = re.match(".*\|taxid:([^|]+)\|.*",line)
    print match.groups()
于 2012-09-17T20:20:00.630 に答える