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

正则表达式提取时段、标题与日期时遇数字干扰的问题求助

问题排查与解决

问题原因

  1. 时段分隔匹配宽泛:原正则用[\s\D\s]+匹配两个时段之间的内容,虽能匹配" to ",但规则过于宽泛,易引发正则回溯,且未明确限定时段间的固定分隔逻辑。
  2. 换行匹配限制:原正则的标题捕获组(.+)默认不匹配换行符,示例1包含换行,导致无法覆盖换行后的内容,最终匹配不到末尾日期。
  3. 贪婪匹配干扰:(.+)的贪婪特性会尽可能多捕获内容,可能将日期前的其他字段纳入标题组,导致日期无法正确提取。

修正后的正则表达式

^([0-9]{1,2}:?[0-9]{0,2}[a-z]{0,2})\s+to\s+([0-9]{1,2}:?[0-9]{0,2}[a-z]{0,2}),\s*([^,]+).*?(\s*(?:\w{1,2} de [\wç]+ de \d{4}|\w+ \d{1,2}, \d{4}))$

关键修改点

  • 精准匹配时段分隔:将[\s\D\s]+替换为\s+to\s+,明确匹配时段间的固定分隔符" to ",避免不必要的回溯。
  • 兼容换行内容:使用.*?非贪婪匹配覆盖换行后的所有内容,确保能捕获到末尾的日期字段。
  • 精准提取标题:用[^,]+匹配第一个逗号后的标题字段(若标题包含逗号,可改为[\s\S]+?非贪婪模式),避免贪婪匹配吞掉后续内容。
  • 合并日期格式:用非捕获组(?:...)整合两种日期格式,确保无论哪种格式都能正确捕获。

匹配结果验证

  • 示例1匹配结果:
    1. 第一个时段:1:30pm
    2. 第二个时段:4:30pm
    3. 标题:Aniversário amigo matteo
    4. 日期: November 23, 2022
  • 示例2匹配结果:
    1. 第一个时段:8am
    2. 第二个时段:9:30am
    3. 标题:All Hearts meeting
    4. 日期: November 21, 2022

内容的提问来源于stack exchange,提问作者Ana Maria Gonzalez Montoya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:50:44