获取两个空格之间的所有内容,包括词干

时间:2015-04-07 02:28:42

标签: python regex

我正在尝试从以下字符串中提取文件名:

s = '[download] /tmp/743979_file.mp4 has already been downloaded'

这是我到目前为止所做的:

>>> re.search(r'(\s).+_file[^\s]+', s).group()
' /tmp/743979_file.mp4'

如何在第一个空格之后,第二个空格之前,包含单词_file

2 个答案:

答案 0 :(得分:3)

使用\S匹配任何非空格字符。因此\S*将匹配零个或多个非空格字符。 \s只是\S的反面,其中\s匹配任何类型的空格字符,\S匹配任何类型的非空格字符。

>>> s = '[download] /tmp/743979_file.mp4 has already been downloaded'
>>> re.search(r'(?<=\s)\S*_file\S*', s).group()
'/tmp/743979_file.mp4'

OR

简单地,

>>> re.search(r'\S*_file\S*', s).group()
'/tmp/743979_file.mp4'

>>> s = '[download] /tmp/743979_file.mp4 has already been downloaded'
>>> m = s.split()[1]
>>> if '_file' in m:
        print(m)


/tmp/743979_file.mp4

答案 1 :(得分:2)

另一个简单的解决方案可能是使用split

print '[download] /tmp/743979_file.mp4 has already been downloaded'.split()[1]