gpt4 book ai didi

python - 正则表达式识别不同形式的年份

转载 作者:行者123 更新时间:2023-11-30 22:37:08 24 4
gpt4 key购买 nike

我正在使用 Python 工作,需要能够读取一串文本并识别文本中提到的所有年份。

年份将在 1800 到 2099 之间,并且可以采用几种不同的形式:

  • 1955
  • '55
  • 55

我的正则表达式很糟糕,我需要小心避免匹配 19 然后 55195 -> [19]5,或20178

最佳答案

这样就可以了:\d{4}|'\d{2}|\d{2}

Live demo

编辑1:
如果正则表达式用作验证(而不是提取,又名您可以假设字符串的唯一内容是数字),您可以使用此 ^(\d{4}|'\d{2}|\d{2})$

Live demo

编辑2:
如果正则表达式用作提取,您可以使用此 (?<!\d)(\d{4}|'\d{2}|\d{2})(?!\d)然而,它比前面提到的要慢,因为它同时使用前瞻和后瞻。

Live demo

import re

m = re.findall(r"(?<!\d)(\d{4}|'\d{2}|\d{2})(?!\d)", "1955 '55 55 195 20567")

print(m) # ['1955', "'55", '55']

关于python - 正则表达式识别不同形式的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954426/

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