我有很多字符串; 它们基本上是文件名.格式如下:
["abcdedf_023.txt", "foeoioo_011.txt", "sdjskdsjd_3131.txt", "dsdsdsrer_044.txt", "rgfbfgrt_12.txt"]
等等.
我需要的是过滤掉包含大于15
末尾的数字的名称.因此,通过上述输入,所需的输出将是:
["abcdedf_023.txt", "sdjskdsjd_3131.txt", "dsdsdsrer_044.txt"]
该数字(15)不是固定的,并且由用户提供作为输入.
如下?只是\d+
用来搜索数字?
[i for i in l if int(re.search('\d+', i).group(0)) > 15]
演示:
["abcdedf_023.txt", "sdjskdsjd_3131.txt", "dsdsdsrer_044.txt"]
你也可以搜索_(\d+).txt
(()
用来捕捉数字):
[i for i in f if int(re.search('_(\d+).txt', i).group(1)) > 15]
删除"abc122dedf_01.txt"
文件中的内容(如果你不想要的话).
如果您只需要文件名中的最后两个数字,例如03
来自1203
:
[i for i in f if int(re.search('\d+', i).group(0)[-2:]) > 15]