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

VB.NET从字符串中提取日期的实现方法求助

提取字符串中日期的可行方案

嘿,我来给你分享个靠谱的解决方案,用Python的正则表达式就能轻松搞定这三种不同格式的日期提取~

思路说明

你遇到的这三个日期格式各不相同:有完整月份名+日期+逗号+年份的长格式,有数字日期+月份缩写+两位年份的短格式,还有点分隔的MM.DD.YYYY格式。我们可以写一个能覆盖这三种情况的正则表达式,一次性从字符串里把日期精准揪出来。

代码实现(Python)

import re

# 待处理的字符串列表
texts = [
    "This is a date, January 23, 2016 Stackoverflow!",
    "this 27 Aug 16 is in date format.",
    "03.22.2017 is also a date."
]

# 匹配三种日期格式的正则表达式
date_pattern = r'(?:(?:January|February|March|April|May|June|July|August|September|October|November|December) \d{1,2}, \d{4})|(?:\d{1,2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{2})|(?:\d{2}\.\d{2}\.\d{4})'

# 逐个提取日期
extracted_dates = []
for text in texts:
    matched_dates = re.findall(date_pattern, text)
    if matched_dates:
        extracted_dates.extend(matched_dates)

# 打印结果
for date in extracted_dates:
    print(date)

运行结果

执行上面的代码后,会输出你期望的内容:

  • January 23, 2016
  • 27 Aug 16
  • 03.22.2017

正则规则拆解

我把正则拆成了三部分,分别对应三种日期格式:

  • 第一部分:(?:January|...|December) \d{1,2}, \d{4} 用来匹配像January 23, 2016这种完整月份的格式
  • 第二部分:\d{1,2} (?:Jan|...|Dec) \d{2} 专门匹配27 Aug 16这种月份缩写的短格式
  • 第三部分:\d{2}\.\d{2}\.\d{4} 负责捕获03.22.2017这种点分隔的数字日期

这样不管是哪种格式,都能准确提取出来啦~

内容的提问来源于stack exchange,提问作者Paul Jaycee Salvador

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:43:21