gpt4 book ai didi

用于捕获不同日期格式的正则表达式

转载 作者:行者123 更新时间:2023-12-01 18:56:34 29 4
gpt4 key购买 nike

我的任务是捕获电子邮件中行程的日期,但给出的日期格式各不相同,我想我需要帮助来找出是否有任何方法来捕获以下格式:

02 APR
APR 02
2 APR
APR 2
2nd APR
APR 2nd
2nd April
April 2nd
APR 12th
April 12th
12th April
April 13-16
13-16 April
APR 13-16
13-16 APR
April 13th-16th
13th-16th April
APR 13th-16th
13th-16th APR

我尝试了很多方法,但就是无法理解或理解,因为我是一个正则表达式新手。

我能得到的最接近的是使用这个:

(\d*)-(\d*) APR|April \d*\d*

编辑-发现我错过了更多格式。

4月13日至16日

4月13日~16日

4 月 13 日

我尝试使用以下方法:

(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\ *\d+(?:[nr]d|th|st)?(?: * \d+(?:[nr]d|th|st)?)?|\d+(?:[nr]d|th|st)?(?: . \d+(?:[nr]d|th|st)?)?\ *(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)

可以捕获带空格或不带空格的日期。有没有办法捕获所有格式,并用“-”、“/”、“~”分割日期并输出/写入单个标准化格式?

(Group 1 Date)-Month (Group 2 Date)-Month eg: 13-Apr 16-Apr

感谢您的建议和评论。

最佳答案

您需要考虑可选值。这是与您的示例输入相匹配的增强版本:

/(\d+)(?:st|[nr]d|th)?-?(\d*)(?:st|[nr]d|th)?\s*Apr(?:il)?|Apr(?:il)?\s*(\d+)(?:st|[nr]d|th)?-?(\d*)(?:st|[nr]d|th)?/i

请参阅regex demo (请注意,您需要使用不区分大小写的修饰符来匹配 April 的任何变体)

基本上,有 2 个匹配 4 月 和日期范围的替代方案:

  • (\d+)(?:st|[nr]d|th)?-?(\d*)(?:st|[nr]d|th)?\s*Apr(?: il)? - 1+ 位数字后跟可选的 stndrdth ,后跟可选的连字符,后跟 0+ 数字,后跟可选的 st 等。后跟 0+ 空格,然后是 AprApril(由于 /i 修饰符,不区分大小写)
  • | - 或
  • Apr(?:il)?\s*(\d+)(?:st|[nr]d|th)?-?(\d*)(?:st|[nr]d| th)? - 与上面相同但交换了。

关于用于捕获不同日期格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689681/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com