【发布时间】:2016-02-23 21:17:29
【问题描述】:
我有一个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 并返回这些整数的列表。
经过一些研究,我想出了这个解决方案,但我想知道是否有更优雅/pythonic 的方式来做到这一点,可能使用列表理解?
li = []
for f in files:
tmp = re.search('iter_[\d]+.caffemodel', f).group()
li.append(int(re.search(r'\d+', tmp).group()))
【问题讨论】:
-
您需要使用捕获组。
r'iter_(\d+)\.caffemodel'然后通过.group(1)访问值。