Access:如何替换字符串中任意位置的mm/dd/yyyy格式为mm/yyyy
解决方案
用正则匹配精准定位mm/dd/yyyy格式的日期,仅删除其中的日部分,不会修改其他无关内容,也无需多次调用REPLACE函数。
匹配逻辑:正则规则(\d{1,2})/\d{1,2}/(\d{4})会匹配「1-2位月份 + / + 1-2位日期 + / +4位年份」的格式,其中第一个捕获组存储月份,第二个捕获组存储年份,替换时直接保留两个捕获组即可。
不同场景的实现代码
Excel(365及以上版本)
假设原始内容存在A列,在空白列输入公式下拉填充即可:
=REGEXREPLACE(A1, "(\d{1,2})/\d{1,2}/(\d{4})", "$1/$2")
MySQL
SELECT REGEXP_REPLACE(你的字段名, '([0-9]{1,2})/[0-9]{1,2}/([0-9]{4})', '$1/$2') AS 处理后字段 FROM 你的表名;
Python Pandas
import pandas as pd # 读取数据后执行替换 df['EXPRESSION'] = df['EXPRESSION'].str.replace(r'(\d{1,2})/\d{1,2}/(\d{4})', r'\1/\2', regex=True)
效果验证
完全匹配示例需求:
6/23/2011→ 输出6/201104/08/2011→ 输出04/201101/31/2021→ 输出01/2021- 已为
mm/yyyy格式的内容、M/D/B/D等标识符、其他数字内容均不会被修改,处理后仍为字符串类型。
内容的提问来源于stack exchange,提问作者gwhb
相关产品推荐
相关产品推荐

