我有一个files
字符串列表,格式如下:
files = ['/misc/lmbraid17/bensch/u-net-3d/2dcellnet/2dcellnet_v6w4l1/2dcellnet_v6w4l1_snapshot_iter_418000.caffemodel.h5',
'/misc/lmbraid17/bensch/u-net-3d/2dcellnet/2dcellnet_v6w4l1/2dcellnet_v6w4l1_snapshot_iter_502000.caffemodel.h5', ...]
我想提取iter_
和.caffemodel
之间的int
,并返回这些int的列表。你知道吗
经过一番研究,我想出了这个解决方案,但我想知道是否有一个更优雅的/Python式的方法,可能使用列表理解?你知道吗
li = []
for f in files:
tmp = re.search('iter_[\d]+.caffemodel', f).group()
li.append(int(re.search(r'\d+', tmp).group()))
只需添加另一个可能的解决方案:将文件名连接到一个大字符串中(看起来像是以
h5
结尾的all,因此没有创建不需要的匹配的危险),并在该字符串上使用re.findall
:也可以使用lookbehind assertion:
仅使用:
如果将表达式放入括号中,它将创建另一组匹配的表达式。你知道吗
相关问题 更多 >
编程相关推荐