这之后,Python的正则表达式分隔的数字是我使用正则表达式:破折号
date = "1981-89"
date = re.findall(r'\d+', date)
如果日期是1981年至1989年这将返回[1981],[89]。添加到正则表达式忽略短划线之后的任何内容(包括短划线本身)是什么?
谢谢!
这之后,Python的正则表达式分隔的数字是我使用正则表达式:破折号
date = "1981-89"
date = re.findall(r'\d+', date)
如果日期是1981年至1989年这将返回[1981],[89]。添加到正则表达式忽略短划线之后的任何内容(包括短划线本身)是什么?
谢谢!
如果需要使用正则表达式,使用match
搜索的第一个元素:
re.match(r'(\d+)', date).group() # matching using parenthesis in regex
我同意这一点。在我看来,英国格拉德要求第一个匹配的项目,因此应该使用'match'或'search'而不是'findall'。 – bmhkim
@bmhkim是的,我从'findall'变成了'match'。从来没有真正理解'match'和'search'之间的区别。 –
你可以用re.sub
其删除:
>>> re.sub(r'-.*','',date)
'1981'
我该怎么加正则表达式忽略短划线之后的任何东西,包括破折号本身?
你可以使用这个表达式:
date = "1981-89"
date = re.match(r'\d+(?=-)', date).group()
// 1981
(?=-)
是在先行是确保我们只匹配后跟连字符数。
为什么不只是分割字符串,并采取你所需要的? –
'date.partition(' - ')[0]'比使用Regex更有效率。 – iCodez
嗨,大家好,谢谢你的回应。我正在尝试学习正则表达式。我可以轻松地解析字符串,但我正在尝试学习新的东西。谢谢! –