在字符串中查找多个细微变化的子字符串

时间:2018-06-19 18:28:24

标签: python regex python-3.x

我正在尝试解析各种看起来像这样的字符串

cpd00015_c + cpd00041_c + cpd00095_c-> 2.0 cpd00001_c + cpd00009_c + cpd00067_c

现在,我有找到第一个实例的代码,但是我想找到这些实例的所有实例。

try:
found = re.search('cpd(.+?)_c', reactionEquation).group(1)
print(found)
except AttributeError:
# AAA, ZZZ not found in the original string
pass # apply your error handling

re.search函数仅查找此对象的第一个实例。是否有针对您不完全知道其名称的多个字符串的研究?

2 个答案:

答案 0 :(得分:0)

要获取所有匹配项,请使用re.findall

例如:

import re
s = "cpd00015_c + cpd00041_c + cpd00095_c --> 2.0 cpd00001_c + cpd00009_c + cpd00067_c"
print( re.findall("cpd(.+?)_c", s) )

输出:

['00015', '00041', '00095', '00001', '00009', '00067']

答案 1 :(得分:0)

只需将search更新为find all并删除组即可。

import re
try:
    found_all = re.findall('cpd(.+?)_c', reactionEquation)
    for found in found_all : 
        print(found)
except AttributeError:
    # AAA, ZZZ not found in the original string
    pass # apply your error handling