Notepad++中仅在包含特定字符串的行内替换指定单词的实现方法
Notepad++中仅在包含特定字符串的行内替换指定单词的实现方法
嘿,我来帮你搞定这个问题!你之前的思路方向是对的,但问题出在正则的捕获和替换逻辑上——你匹配了整行内容,要是替换时没正确引用捕获组,自然会把整行换掉。
针对你的需求(仅在包含_%7bwidth%7d的行里把html替换成jpg),按下面的步骤来操作就没问题:
- 打开Notepad++的替换窗口(快捷键
Ctrl+H) - 勾选「正则表达式」模式(注意不要勾选「.匹配换行」选项)
- 在「查找内容」框里输入:
(.*_%7bwidth%7d.*?)html
这里的(.*_%7bwidth%7d.*?)是一个捕获组,会匹配从行开头到html之前、且包含_%7bwidth%7d的所有内容,?是非贪婪匹配,能避免意外匹配到多余内容 - 在「替换为」框里输入:
$1jpg$1会引用刚才捕获组里保留的内容,然后把原来的html换成jpg
如果你的实际需求和示例一样,还要同时去掉_%7bwidth%7d这部分内容,那调整一下正则即可:
- 查找内容:
(.*)_%7bwidth%7d(.*?)html - 替换为:
$1$2jpg
这样就能同时移除_%7bwidth%7d并替换html为jpg,完美匹配你给出的预期结果。
操作的时候可以先点击「查找下一个」确认匹配的内容是否正确,没问题再点击「全部替换」就好啦!
备注:内容来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

