python - 如何在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),而不仅仅是我现在得到的一个
解决方案
您需要re.findall
代替re.search
:
re.findall(r'GO:\d+', go, re.MULTILINE|re.IGNORECASE)
# ['GO:0030054', 'GO:0005813', 'GO:0036064', 'GO:0005737']
推荐阅读
- c# - 实例化创建两个对象而不是一个
- sql - SQL 将数据从表插入到另一个表
- xml - XSLT - 使用 Xsl 将 Xml 转换为 Xml
- reporting-services - SSDT 自动重启
- python - 在 sklearn 中创建自定义转换器时出错 - 需要 2 个位置参数,但给出了 3 个
- c - 二进制文件中的信息无法正确显示
- laravel - 如何在不删除数据的情况下更新对象在 laravel mongo 之前保存
- python - 如何正确编码 sklearn 的分类 - 决策树的内存错误
- python - 无法访问 SVM.SVC.score Scikit-learn Python 中的混淆矩阵
- arrays - 如何在 Oracle json_arrayagg 中添加虚拟记录