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

如何替换文本中间重复字符及在Notepad++中用正则替换每行首个冒号

解决仅替换每行第一个重复单个字符的问题

刚好碰到过类似的需求,在Notepad++里用正则表达式就能轻松搞定,下面一步步给你讲清楚:

核心思路

要只替换每行的第一个目标字符(比如你的冒号),关键是精准定位每行的第一个目标字符,同时避开后面的重复字符。这里用非贪婪匹配的正则表达式就能实现,它会从行首开始,找到第一个出现的目标字符就停止匹配,不会波及后面的。

Notepad++具体操作步骤

  1. 打开你的目标文本,按下Ctrl+H调出替换窗口
  2. 在「查找模式」里选中「正则表达式」,注意不要勾选「.匹配换行符」(我们要按单行处理)
  3. 填写以下内容:
    • 查找内容:^(.*?):
    • 替换内容:$1;
  4. 点击「全部替换」,搞定!

正则表达式解释

  • ^:匹配每行的开头,确保我们只处理当前行的内容
  • .*?:非贪婪匹配任意字符(除了换行),这里的?是关键,它会让正则尽可能少地匹配字符,直到找到第一个:就停止
  • ::就是我们要替换的目标字符
  • $1:引用前面(.*?)捕获到的内容,把它保留下来,再加上我们要替换成的;,这样就实现了只把第一个:换成;,其他内容原封不动

测试用例验证

原始文本:
test1:|TEST:-TEST.|
test2:
|TEST:-TEST.|
test3:_|TEST:-TEST.|

替换后结果:
test1;|TEST:-TEST.|
test2;
|TEST:-TEST.|
test3;_|TEST:-TEST.|

如果是其他重复的单个字符,只需要把查找内容里的:换成你要替换的字符,替换内容里的;换成目标字符就行,方法通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:40:51