Notepad++编辑器查找功能非常强大,本处记录一些实战中常用到复杂查询替换操作。
注意:如果是重要文件,替换操作前最好备份;当前一个操作后也可以用ctrl+z恢复。
查找重复行
用查找(ctrl+f)功能,用正则表达式模式匹配。
查找连续重复行的表达式:
^(.*\r?\n)\1+
规则:“\1"是查找中第一对()中匹配的内容,以此类推可到”\9"。
去除重复行
用替换(ctrl+h)功能如下图处理即可:
用到的正则表达式如下:
^(.*?)$\s+?^(?=.*^\1$)
删除空行
用替换(ctrl+h)功能,用正则表达式模式匹配。正则表达式如下:
^[ \t]*\r\n
行头/行尾增加内容
用替换(ctrl+h)功能,用正则表达式模式匹配。
行头增加内容图:
行尾增加内容图:
行尾增加空行图:
行尾增加新行图:
单词前后加引号
用替换(ctrl+h)功能,用正则表达式模式匹配。
注意:单词指用非(字母或数字或汉字)隔开的单词或句。
替换单词并换行
把一行第一个单词(如pid,error_log)替换为单词单独一行+原来行,如:
error_log log/err.log
替换为:
error_log
error_log log/err.log
合并成一行
用替换(ctrl+h)功能,用正则表达式模式匹配。
上面合并后用“、"隔开
关于跨行匹配
在正则表达式中,正常的”."表示匹配除\r、\n外的任意字符(即按行匹配)。在Notepad++,可以跨行匹配,如下图红框设置):
选中表示跨行匹配;不选中则是按行匹配
调整文字顺序
如需要下述替换:
把DELETE FROM t1 WHERE t2_id in (select id from t2 where mid=@mid);
改为:
delete a from t1 a,t2 b where a.t2_id=b.id and b.mid=@mid;
查找目标:DELETE FROM (\b\w+\b) WHERE orders_sn in.*
替换目标:delete a from \1 a,t2 b where a.t2_id=b.id and b.mid=@mid;
其中:
\b\w+\b -捕获一个或多个单词字符,并且必须位于单词边界,这应该匹配表名
\1 -对应查找目标的第一个()匹配的内容
这篇文章如果对您有所帮助或者启发的话,帮忙关注或点赞,有问题请评论,必有所复。您的支持是我写作的最大动力!