如何正确提取年份的正则表达式函数?

尼基塔·采哈诺维奇

需要编写一个函数,从游戏名称列表中提取年份,并返回“year-1”值。我们快到了,但问题在于最后一个示例“NHL 2008supreme”,考虑到游戏名称有误,但我们仍然需要提取值:

def correct_year(game_name):
    found = re.search(r'(\b(19|20)\d{2})\b', game_name)
    if found:
        n =  int(found.group(0))
        return n - 1

print(correct_year('NHL 1989'))
#1988

print(correct_year('the game in 2010 was amazing'))
#2009

print(correct_year('NHL 15'))
#None

print(correct_year('NHL 2015'))
#2014

print(correct_year('NHL 198765'))
#None

print(correct_year('NHL 2008supreme'))
#None
#Should be 2007!

如何修改该函数以与最后一个示例一起使用?

魂器
\b(19|20)\d{2}(?!\d)

哪里(?!...)负前瞻我用它来检查第四个数字后面是否没有另一个数字。

在此处查看演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章