我有一堆包含这些类型值的列表:
('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67')
我只对以“id”开头的值加上跟随它的数字感兴趣。
例如,我想从此列表中提取“id3”
('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67')
来自的或“id33”
('CDI - AC - MO - id33 - Mobile', '2018-01-12', '48,67')
由于re库
,我正在努力实现这一目标这是我的代码:
matchObj = re.search( r'id*', my_list, re.M|re.I)
您是否有任何建议可以帮助返回所需的值?
由于
答案 0 :(得分:2)
您可以使用正则表达式:
\bid\d+\b
\b
匹配单词结尾处的空字符串(零宽度)
id
macthes id
字面意思
\d+
匹配一个或多个数字
示例:强>
In [113]: t1 = ('CDI - AB - MO - id3 - Mobile', '2018-01-12', '48,67')
In [114]: t2 = ('CDI - AC - MO - id33 - Mobile', '2018-01-12', '48,67')
In [115]: pat = re.compile(r'\bid\d+\b')
In [119]: [pat.search(i).group() for i in t1 if pat.search(i)]
Out[119]: ['id3']
In [120]: [pat.search(i).group() for i in t2 if pat.search(i)]
Out[120]: ['id33']