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

如何解决Pandas中用正则提取含荷兰语月份的日期失败问题

解决日期提取失败的问题

问题分析

你的正则表达式中,针对荷兰语月份格式的日期部分使用了固定的半角空格,但文本中的日期可能包含非标准空格(比如不间断空格、全角空格),或者存在多个空格的情况,导致无法匹配2 oktober 2023这类日期。

修改方案

将正则中的固定空格替换为\s+(匹配一个或多个任意空白字符),确保兼容各种空格场景。调整后的代码如下:

import re
import pandas as pd

def find_valid_dates(dt):
    # 用\s+匹配一个或多个空白字符,覆盖各类空格及多空格场景
    result = re.findall(r"\d{1,2}-\d{2}-\d{2,4}|\d{1,2}\s+(?:januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)\s+\d{1,4}", dt)
    return result

# 测试验证(模拟含不同空格的文本)
test_text = "测试内容:14-06-2020、2 oktober 2023、5  november  2024(多空格)、12\u00A0december\u00A02022(不间断空格)"
print(find_valid_dates(test_text))  # 输出:['14-06-2020', '2 oktober 2023', '5  november  2024', '12 december 2022']

# 应用到DataFrame
SaaOne_msi_vervangen['valid_dates'] = SaaOne_msi_vervangen['Oplossingstekst'].apply(find_valid_dates)

精准匹配优化(可选)

如果只想匹配空格和常见的不间断空格,可以把\s+替换为[\s\u00A0]+(\u00A0是不间断空格的Unicode编码),避免匹配到制表符、换行符等无关空白:

result = re.findall(r"\d{1,2}-\d{2}-\d{2,4}|\d{1,2}[\s\u00A0]+(?:januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)[\s\u00A0]+\d{1,4}", dt)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:57:38