使用正则表达式从字符串中提取数字

2024-09-24 22:33:10 发布

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

我有下面的绳子:

fname="VDSKBLAG00120C02 (10).gif"

如何从字符串fname(使用re)提取值10?在


Tags: 字符串regiffname绳子vdskblag00120c02
3条回答

就我个人而言,我会用这个正则表达式:

^.*\(\d+\)(?:\.[^().]+)?$

这样,我可以选择括号中的最后一个数字,就在扩展名之前(如果有的话)。如果文件名的中间有任何随机数,它就不会选择括号中的任何随机数。例如,它应该正确地从SomeFilmTitle.(2012).RippedByGroup (2).avi中选择2。唯一的缺点是,它无法区分数字何时正好在扩展名之前:SomeFilmTitle (2012).avi。在

我假设文件的扩展名(如果有的话)不应该包含()。在

regex = re.compile(r"(?<=\()\d+(?=\))")
value = int(re.search(regex, fname).group(0))

说明:

^{pr2}$

更简单的regex是\((\d+)\)

regex = re.compile(r'\((\d+)\)')
value = int(re.search(regex, fname).group(1))

相关问题 更多 >