无论组合如何从组1中分离出特定的单词和年份

  • 本文关键字:单词 分离出 组合 regex
  • 更新时间 :
  • 英文 :


我得到了一些不同的值,比如

  • 2021年秋季
  • 2021 pes-3秋季P-S
  • pes-3秋季2021
  • 秋季美元- 2021年2

我真的很想隔离"秋天"。和"2021";-均为第1组

当然是"秋天"。也可以是"春天"、"夏天"、"冬天";而年份当然应该与年份相匹配。

如果我得到"2021年秋天"也没关系。"2021年秋";只要我能把它隔离在同一组内1

我怎么能做到这一点?我简直不知道怎么把它放在一个单独的组里。

我可以把这里的位置分离出来,但当然仍然匹配整个

((?:(?:autumn|spring)(?:s*[a-zA-Z]*s*)d{4})|(?:d{4}(?:s*[a-zA-Z]*s*)(?:autumn|spring)))

我可以从这里以某种方式减去部分并将它们组合成单个组结果吗?

我没有找到一个正则表达式来捕获您想要的1组内容,但也许这个一行解决方案可以帮助您?

import re
text = ["autumn ux-s 2021", "2021 pes-3 autumn P-S", "pes-3 autumn 2021 32" ,"autumn usd- fosd 2021 2"]
pattern = r"(autumn|summer|winter|spring).*(d{4})|(d{4}).*(autumn|summer|winter|spring)"
print([' '.join(filter(None, re.search(pattern, txt, re.IGNORECASE).groups())) for txt in text])

输出:['autumn 2021', '2021 autumn', 'autumn 2021', 'autumn 2021']

最新更新