我在py2.7中有这个工作正常,但我现在无法让它在py3中使用正则表达式的更改
我只想要字符串" voltaire
"从文件名
gpxFileName = '235235voltaire.gpx'
m=re.search('(?<=[0-9]).*?(?=.gpx)',gpxFileName)
print (m.group(1))
上面的代码成功修剪了.gpx罚款,但数字保留在:(
我已经因为waaaaay太长时间而被困在这上面了,它杀了我。我错过了吗?
不过,我也试过m=re.search('(?<=[0-9])\w+',gpxFileName)
和
m=re.search('(?<=\d).*(?=.gpx)',gpxFileName)
答案 0 :(得分:4)
您需要使用capturing groups:
>>> import re
>>> s = '235235voltaire.gpx'
>>> re.search(r'\d+(\w+)\.gpx', s).group(1)
'voltaire'
这里我们正在一个或多个数字之后和.gpx
之前提取一个或多个字母数字字符(点必须被转义,因为它具有特殊含义)。