Python 3在两点之间找到一个字符串

时间:2015-12-22 02:08:47

标签: python regex python-3.x search

我在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)

1 个答案:

答案 0 :(得分:4)

您需要使用capturing groups

>>> import re
>>> s = '235235voltaire.gpx'
>>> re.search(r'\d+(\w+)\.gpx', s).group(1)
'voltaire'

这里我们正在一个或多个数字之后和.gpx之前提取一个或多个字母数字字符(点必须被转义,因为它具有特殊含义)。