如何使用Python regex库提取字符串中的日期时间并转换指定格式?
使用Python正则提取并转换字符串中的日期时间
没问题,这就给你一步步讲清楚怎么用Python的re库搞定这个需求:
首先咱们的目标字符串是:start_KA03MM7155_RKMS121MI4-4.21005_NEW_end, 2018-01-02 09:48:23
实现步骤:
- 导入正则库:先导入Python内置的
re模块,这是处理正则匹配的基础。 - 编写匹配正则:要精准匹配
YYYY-MM-DD HH:MM:SS格式的日期时间,用分组捕获每个部分,正则表达式可以写成:
每个括号对应一个分组,分别是年、月、日、时、分、秒。r'(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})' - 执行匹配提取:用
re.search()方法在目标字符串里定位到匹配的日期时间片段。 - 转换格式并存储:从匹配结果里取出各个分组,按要求拼接成目标格式后存入变量。
完整代码示例:
import re # 目标字符串 target_str = "start_KA03MM7155_RKMS121MI4-4.21005_NEW_end, 2018-01-02 09:48:23" # 定义正则表达式 pattern = r'(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})' # 查找匹配项 match_result = re.search(pattern, target_str) if match_result: # 提取各个分组内容 year, month, day = match_result.group(1), match_result.group(2), match_result.group(3) hour, minute, second = match_result.group(4), match_result.group(5), match_result.group(6) # 转换日期格式为 DDMMYY formatted_date = f"{day}{month}{year[-2:]}" # 转换时间格式为 HHMMSS formatted_time = f"{hour}{minute}{second}" # 验证结果 print(f"转换后的日期: {formatted_date}") # 输出 020118 print(f"转换后的时间: {formatted_time}") # 输出 094823 else: print("未找到匹配的日期时间格式")
代码说明:
re.search(pattern, target_str)会在字符串中找到第一个符合正则的片段,返回匹配对象。match_result.group(n)用来获取第n个分组的内容,比如group(1)是年份2018,group(3)是日期02。year[-2:]取年份的后两位18,和月、日拼接成020118;时间部分直接去掉冒号拼接成094823。
内容的提问来源于stack exchange,提问作者Amar Bir Singh
相关产品推荐
相关产品推荐

