首页 > 解决方案 > 如何在python中使用正则表达式提取多个搜索?

问题描述

我有一个字符串,我想从中提取某些单词,并且我使用了 Python 的正则表达式,但不幸的是,我从所有匹配项中只得到一个单词。

这是我的输入字符串

go = "GO:0030054^cellular_component^cell junction`GO:0005813^cellular_component^centrosome`GO:0036064^cellular_component^ciliary basal body`GO:0005737^cellular_component^cytoplasm"

这是我尝试过的正则表达式

go_search = re.search(r'(GO:\d+)', go, re.MULTILINE|re.IGNORECASE)

但我得到的唯一输出是

go_search.group(1)
'GO:0030054'

我怎样才能获得所有 4 个 GO'id(GO:0005813、GO:0036064 和 GO:0005737),而不仅仅是我现在得到的一个

标签: pythonregex

解决方案


您需要re.findall代替re.search

re.findall(r'GO:\d+', go, re.MULTILINE|re.IGNORECASE)
# ['GO:0030054', 'GO:0005813', 'GO:0036064', 'GO:0005737']

推荐阅读