gpt4 book ai didi

python - 正则表达式匹配 Python 中的非数值或字符串结尾

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:30 24 4
gpt4 key购买 nike

我正在尝试将日期格式与正则表达式匹配。每个日期的示例为:

02 Apr 15
02 Apr 2015

我用来匹配第一个的正则表达式是:

re.compile("([0-9]{2}) ([A-Z][a-z]{2}) ([0-9]{2})")

第二个:

re.compile("([0-9]{2}) ([A-Z][a-z]{2}) ([0-9]{4})")

现在我遇到的问题是第二个日期将与第一个正则表达式匹配,即使它包含 4 位数字而不仅仅是 2 位。我想向正则表达式添加行尾,但有时有时间附加到它之后(即 4:32)。所以我想做的是让第一个正则表达式与相应的日期匹配,并且后面可能没有任何内容或后面有空格+东西。所以第一个应该匹配:

"02 Apr 15"
"02 Apr 15 5:23"

但不匹配:

"02 Apr 2015"
"02 Apr 2015 5:23"

对于其他正则表达式,它应该失败。因此,几乎唯一重要的值是前 3 个(dd Mmm YY 和 dd Mmm YYYY)。

最佳答案

您要寻找的是单词边界,即:

re.compile("\\b([0-9]{2}) ([A-Z][a-z]{2}) ([0-9]{2})\\b")

这将确保在尝试匹配示例中的第一个日期时不匹配 4 位数年份。

但是您应该考虑Python date parse routine

关于python - 正则表达式匹配 Python 中的非数值或字符串结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29415599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com