Python Regex在破折号后分隔数字

时间:2015-04-06 22:01:18

标签: python regex

这是我正在使用的正则表达式:

date = "1981-89"
date = re.findall(r'\d+', date)

如果日期是1981-89,则返回[1981],[89]。我应该在正则表达式中添加什么来忽略破折号后的任何内容,包括破折号本身?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您需要使用正则表达式,请使用match搜索的第一个元素:

re.match(r'(\d+)', date).group() # matching using parenthesis in regex

答案 1 :(得分:0)

您可以使用re.sub删除它:

>>> re.sub(r'-.*','',date)
'1981'

答案 2 :(得分:0)

  

我在正则表达式中添加什么来忽略破折号之后的任何内容,包括破折号本身?

您可以使用此正则表达式:

date = "1981-89"
date = re.match(r'\d+(?=-)', date).group()
// 1981

(?=-)是一个前瞻,确保我们只匹配后跟连字符的数字。