我有一套像这样的电影列表
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字符?
答案 0 :(得分:2)
re.search
或re.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)
你最好尝试匹配而不是删除不需要的东西。