如何批量替换类社保号格式带连字符数字的最后四位
批量替换类SSN格式数字的最后四位为指定值
方案1:文本编辑器正则替换(适用于纯文本文件)
主流文本编辑器(VS Code、Notepad++、Sublime Text)都支持正则查找替换,操作步骤:
- 打开目标文件,调出替换面板(VS Code按
Ctrl+H,Notepad++按Ctrl+H) - 开启「正则表达式」模式(VS Code勾选面板
.*图标,Notepad++选择「正则表达式」搜索模式) - 「查找内容」输入:
(\d{3}-\d{2}-)\d{4} - 「替换为」输入:
$16700 - 点击「全部替换」完成批量修改
说明:(\d{3}-\d{2}-)会匹配并保留前两段内容(如123-45-),\d{4}匹配最后四位,替换时用$1引用保留的前两段,拼接固定值6700。
方案2:Excel/Google Sheets公式处理(适用于表格数据)
若数据在表格中,用公式批量生成修改后的值:
- 假设原始数据在A列,在B1单元格输入以下任一公式:
- 截取拼接(格式严格为
XXX-XX-XXXX时可用):=LEFT(A1,6)&"6700" - 正则替换(Excel 365/Google Sheets支持):
=REGEXREPLACE(A1,"(\d{3}-\d{2}-)\d{4}","$16700")
- 截取拼接(格式严格为
- 下拉填充公式即可批量处理整列数据
方案3:Python脚本批量处理(适用于大量文件或自动化场景)
处理大量文件或需自动化时,用Python脚本实现:
import re import os # 目标文件目录,可自行修改 target_dir = "./ssn_files" for filename in os.listdir(target_dir): if filename.endswith(".txt"): file_path = os.path.join(target_dir, filename) # 读取文件内容 with open(file_path, "r", encoding="utf-8") as f: content = f.read() # 执行正则替换 modified_content = re.sub(r'(\d{3}-\d{2}-)\d{4}', r'\16700', content) # 写入修改后的新文件(避免覆盖原文件) with open(file_path.replace(".txt", "_modified.txt"), "w", encoding="utf-8") as f: f.write(modified_content)
使用说明:修改target_dir为你的文件目录,脚本会处理目录下所有.txt文件,生成带_modified后缀的新文件。
内容的提问来源于stack exchange,提问作者user17432547
相关产品推荐
相关产品推荐

