如何在字符串的末尾排除alpha char的出现

时间:2014-12-11 11:26:59

标签: regex python-2.7

我有一套像这样的电影列表

Name: The Godfather: Part II (1974) 1080p 
Genre:  Crime | Drama 
rating:  9.1/10

现在我想要实现的是将电影名称直到年份 那是The Godfather: Part II

然而,在制作正则表达式时,它始终使用名称字符串

中的最后一个p

我正在做的是

r=re.compile(r"[^a-zA-Z :]")

然后

r.sub("",Name)

结果是

The Godfather: Part II  p 

现在我的问题是如何通过正则表达式排除最终的alpha字符?

2 个答案:

答案 0 :(得分:2)

re.searchre.findall是可行的方法。

>>> Name = "The Godfather: Part II (1974) 1080p "
>>> re.findall(r'(.*?)\s+\(\d{4}\)', Name)
['The Godfather: Part II']
>>> re.search(r'(.*?)\s+\(\d{4}\)', Name).group(1)
'The Godfather: Part II'

如果您想使用re.sub,请匹配从年份到最后一年的所有字符。

>>> re.sub(r'\s+\(\d{4}\).*', r'', Name)
'The Godfather: Part II'

答案 1 :(得分:1)

print re.findall(r"^(.+?)(?=\(\d{4}|\d{4})",Name)

你最好尝试匹配而不是删除不需要的东西。