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

如何在Python中将‘Tuesday 24th January’转为‘Tuesday 24 January’?

解决方案

方法一:正则表达式精准移除数字后缀(原生Python,无需第三方库)

直接用正则匹配数字后面的st/nd/rd/th后缀,避免误删普通单词中的相同字符。核心思路是只针对数字后的后缀做替换:

import re

# 示例输入
raw_date = 'Tuesday 24th January'
# 正则替换:捕获数字分组,去掉后面的后缀
formatted_date = re.sub(r'(\d+)(st|nd|rd|th)', r'\1', raw_date)
print(formatted_date)  # 输出: Tuesday 24 January

这个正则能处理所有日期后缀场景:

  • 1st → 1
  • 2nd → 2
  • 3rd → 3
  • 11th → 11
  • 22nd → 22
  • 33rd → 33
    完全不会影响类似Saturday这类单词,因为它的rd前面不是数字,正则不会匹配。

方法二:借助第三方库解析后重新格式化(更严谨)

如果需要确保日期的合法性,推荐用python-dateutil库解析带后缀的日期,再重新输出目标格式:

  1. 先安装库:
pip install python-dateutil
  1. 代码实现:
from dateutil import parser

raw_date = 'Tuesday 24th January'
# 自动解析带后缀的日期字符串
date_obj = parser.parse(raw_date)
# 按目标格式输出
formatted_date = date_obj.strftime('%A %d %B')
print(formatted_date)  # 输出: Tuesday 24 January

这种方法的优势是能校验日期的有效性(比如不会把32nd January当成合法日期),适合对数据严谨性要求高的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:35:45