带有重复子模式的python regex

2024-09-29 01:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种“智能”的方法(一个正则表达式)从下面的段落中提取ID:

...
imgList = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif';
...

结果应该是一个包含12600891260090的列表。身份证的数目可能多达10个。在

我需要这样的东西:

re.findall('imgList = (some expression)', string)

有什么想法吗?在


Tags: 方法reid列表智能some段落expression
3条回答

如果optimzed/一个_fpx部分没有得到保证,并且ID在7到10位之间 你可以做些像

import re
re.findall('[\d]{7,10}', imgList)

这将在字符串中找到一个7到10位的数字,因此,0-6位或10位以上的id将被排除在外。在

import re

s = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif'

print(re.findall(r'(\d+)_fpx.tif', s))

最好是使用一个正则表达式来查找所有的数字。我叫re.findall

>>> imgList = '9/optimized/1260089_fpx.tif,0/optimized/1260090_fpx.tif'
>>> import re
>>> re.findall('optimized/([0-9]*)_fpx', imgList)
['1260089', '1260090']

当然,您可以使regex更强大,但如果数据如您所示,这就足够了。在

相关问题 更多 >