如何用Notepad++正则替换中间含大写字母的合并姓名?
批量修复姓名列表中的合并项(Notepad++正则方案)
问题背景
我有一份格式为姓氏, 名字的姓名列表,原本每个姓名单独占一行:
Lastname, Firstname Lastname, Firstname Lastname, Firstname Lastname, Firstname
但部分换行丢失后,出现了名字与下一个姓氏合并的异常情况:
Lastname, Firstname Lastname, FirstnameLastname, Firstname Lastname, FirstnameLastname, Firstname
需要用Notepad++的正则表达式功能批量修复这类问题。
已尝试的可行方案
之前用\w+[A-Z]\w*手动查找修改效率极低,后来自己摸索出以下正则可以实现拆分:
- 查找:
(\b[A-Za-z]+)([A-Z]+)([A-Za-z]+\b) - 替换:
\1\n\2\3
更简洁高效的优化方案(来自toto)
针对「小写结尾的名字 + 大写开头的姓氏」的合并特征,直接匹配大小写字母的分界点插入换行,精准又高效:
- 查找正则:
([a-z])([A-Z]) - 替换内容:
\1\n\2
操作步骤
- 用Notepad++打开目标文本文件
- 按下
Ctrl+H打开替换对话框 - 勾选「正则表达式」选项(不要勾选「.匹配换行符」)
- 分别填入上述查找和替换内容
- 点击「全部替换」,即可一次性修复所有合并项
内容的提问来源于stack exchange,提问作者0x9342812j1o
相关产品推荐
相关产品推荐

