如何用正则表达式替换第104、105与105、106个@间的内容?
用Notepad++正则替换指定@分隔符区间的内容
针对你需要替换第104-105个@、第105-106个@之间内容的需求,以下是可行的正则方案,适配Notepad++的正则语法:
替换第104个与第105个@之间的内容
查找正则
^((?:[^@]*@){104})[^@]*(@)
替换为
$1[你的替换内容]$2
将[你的替换内容]替换为你实际需要填入的文本即可。
替换第105个与第106个@之间的内容
查找正则
^((?:[^@]*@){105})[^@]*(@)
替换为
$1[你的替换内容]$2
正则逻辑说明
^:锚定行开头,确保从每行起始位置开始计数@的数量,避免跨行或中间匹配出错(?:[^@]*@):非捕获分组,匹配「任意非@字符 + 一个@」的组合,重复指定次数(104/105)后,就能精准定位到目标区间的前一个@位置[^@]*:匹配目标区间内的所有内容(即两个@之间的文本),这部分就是我们要替换掉的内容(@):捕获目标区间的后一个@,替换时通过$2保留这个分隔符,保证原有结构不变
Notepad++操作步骤
- 按
Ctrl+H打开替换对话框 - 切换到「正则表达式」模式(不要勾选「.匹配换行符」选项,确保每行独立处理)
- 输入对应的查找正则和替换内容
- 先点击「查找下一个」验证是否匹配到目标位置,确认无误后点击「全部替换」即可批量处理2万+行数据
内容的提问来源于stack exchange,提问作者user1194310
相关产品推荐
相关产品推荐

