You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言正则表达式:从格式不统一的字符串中提取起止年份

正则表达式提取年份方案

可以通过正则表达式实现这两个提取需求,对应的正则及说明如下:

1. 提取开始年份(破折号前的首个四位数字)

正则表达式:

(\d{4})(?=[^-]*-)

说明

  • \d{4}:匹配连续四位数字(年份格式)
  • (?=[^-]*-):正向预查规则,确保匹配的四位数字后面存在破折号,且两者之间没有其他破折号,以此锁定破折号前的首个年份数字。

如果使用支持捕获组的工具,也可以用以下表达式,提取第一个捕获组内容即可:

^.*?(\d{4}).*?-

2. 提取结束年份(逗号前的目标四位数字,即破折号后、逗号前的年份)

正则表达式:

(\d{4})(?=[^,]*$)

说明

  • \d{4}:匹配连续四位数字(年份格式)
  • (?=[^,]*$):正向预查规则,确保匹配的四位数字后面直到字符串结尾没有逗号,以此锁定逗号前的最后一个年份数字(即结束年份)。

若要更精准锁定破折号后的内容,可使用以下表达式,提取第一个捕获组内容即可:

-(?:(?!-).)*?(\d{4})(?=[^,]*,)

测试验证

针对你给出的示例字符串:

  • "05.1990 - 06.1990, Poland":开始年份提取1990,结束年份提取1990
  • "11.05.1990 - 13.07.1990, Portugal":开始年份提取1990,结束年份提取1990
  • "1993 - 1993, Romania":开始年份提取1993,结束年份提取1993

内容的提问来源于stack exchange,提问作者Piotrq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:45:40