正则表达式匹配视频文件名

时间:2012-03-31 01:31:02

标签: python regex

更具体地说,我不知道确切的值是什么。

基本上我需要找到3或4位数的字符,然后是文字字母p?

1080p720p576p等...

看了很多东西,但却无法使它发挥作用。

Heres'示例字符串

Back.to.the.Future.1985.720p.BluRay.X264-AMIABLE.mkv

在这种情况下,我想返回

Back.to.the.Future.1985.

re.search("^[^\d{3,4}p]+","Back.to.the.Future.1985.720p.BluRay.X264-AMIABLE.mkv")

然而,返回

'Back.to.the.Future.' 

非常感谢

3 个答案:

答案 0 :(得分:3)

  

我需要找到3或4位数字符后跟字面值p

\d{3,4}p

如果您不想匹配3456p中的123456poop,可以添加一些断言,例如:

\b\d{3,4}p\b

答案 1 :(得分:2)

>>> import re
>>> re.search("(.*)\d{3,4}p",
              "Back.to.the.Future.1985.720p.BluRay.X264-AMIABLE.mkv").groups()[0]
'Back.to.the.Future.1985.'

答案 2 :(得分:1)

听起来你想要的是“任何东西,后跟一个或多个数字,然后是'p'”。然后你想“捕捉”“任何”部分。

看起来像

(.*)\d+p

或指定数字量范围,

(.*)\d{3,4}p