2024-10-03 11:18:28 发布
网友
我有一长串字符串;它们基本上是文件名。格式如下:
["abcdedf_023.txt", "foeoioo_011.txt", "sdjskdsjd_3131.txt", "dsdsdsrer_044.txt", "rgfbfgrt_12.txt"]
等等。在
我需要的是过滤掉末尾包含大于15的数字的名称。因此,对于上述输入,期望输出将是:
15
这个数字(15)不是固定的,由用户作为输入提供。在
我会使用split
split
>>> l = ["abcdedf_023.txt", "foeoioo_011.txt", "sdjskdsjd_3131.txt", "dsdsdsrer_044.txt", "rgfbfgrt_12.txt"] >>> [i for i in l if int(i.split('.')[0].split('_')[-1]) > 15 ] ['abcdedf_023.txt', 'sdjskdsjd_3131.txt', 'dsdsdsrer_044.txt']
将上述列表理解中的15替换为实际包含要检查的数字的变量。。注意,变量的类型必须是integer或在条件检查期间将其转换为int。在
int
像下面这样?只需使用\d+搜索号码?在
\d+
[i for i in l if int(re.search('\d+', i).group(0)) > 15]
演示:
您还可以搜索_(\d+).txt(使用()来捕捉以下数字):
_(\d+).txt
()
[i for i in f if int(re.search('_(\d+).txt', i).group(1)) > 15]
删除文件中的"abc122dedf_01.txt"之类的内容(如果您不需要的话)。在
"abc122dedf_01.txt"
如果文件名中只需要最后两个数字,例如get 03from{}:
03
[i for i in f if int(re.search('\d+', i).group(0)[-2:]) > 15]
我会使用
split
将上述列表理解中的
15
替换为实际包含要检查的数字的变量。。注意,变量的类型必须是integer或在条件检查期间将其转换为int
。在像下面这样?只需使用
\d+
搜索号码?在演示:
^{pr2}$您还可以搜索
_(\d+).txt
(使用()
来捕捉以下数字):删除文件中的
"abc122dedf_01.txt"
之类的内容(如果您不需要的话)。在如果文件名中只需要最后两个数字,例如get}:
03
from{相关问题 更多 >
编程相关推荐