我得到了一些不同的值,比如
- 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']