Notepad++ 批量替换

2012-09-23   来源:站长日记       编辑:沧海桑田   类别:文本编辑器    转载到:    发表评论

Notepad++ 批量替换可以使用 正则表达式 来完成 , 可处理正在编辑的文本,也可批量处理多个文件,甚至是还没有打开的文件,功能非常强大.

Notepad++ 批量替换

一、删除空行(不包括有空格类符号的空行)
1、\r\n转义符替换
按ctrl+h,跳出搜索替换框,把查找模式定义为扩展(\n,\r...)
查找目标:\r\n\r\n
替换为:\r\n

批量删除 空行,在 notepad++中的操作
1)\n\r 表示两句文本中间空了一行;
2) \n  换行,对应的 ascii 码为 10;
3) \r  回车( 按了 Enter 键 换行),这种换行对应的 ascii 码为 13;

具体步骤如下……………………………………………………………………………………………………………………
1)打开文档,点击菜单栏“搜索”,选择“替换”;【 Ctrl+H 】或 【 Ctrl+F 】
2)查找内容:\n\r
3)替换为空,不用填):
4)选择左下角的 “扩展\n,\r,\t……)”;
5)点击“全部替换”按钮即可;

2、Textfx插件
先选中要删部分文本内容,如果是整个文件那就全选Ctrl+A,然后使用Notepad++自带的Textfx插件,在长长的列表中找到Delete Blank Lines,点击即可。
二、删除有空格的空行
1、先删除空格,后删除空行 如何删除只有空格行的空格?
在菜单编辑中找到Blank Operations(行编辑),点击移除行尾空白,再用上面的方法删除空行。

2、使用正则表达式删除空格行空格
替换中查找模式选择正则表达式^ +$,替换为空(就是什么都不填),再用上面的方法删除空行。
如果还有很多窄就是例外,解决方法 点视图 > 显示字符 > 显示所有字符,
现在可以看到每行都有个 黑色背景的LF,这是什么呢?是换行的控制符,正规表示就是一个\n

\n{2,} 替换为 \1 这样一个一个去替换

Ctrl+H with Extended option selected instead of Regexp. Search for "\r\n", or whatever your OS uses, and replace with what you need. It will replace the newline characters with what you entered. Note that Windows uses CR-LF newlines (\r\n), old Mac uses CR (\r) and Unix uses LF (\n). You can use View -> Show Symbol -> Show End Of Line to see which characters your file uses - files from other OSes may not behave as you expect because they have a different newline type.

Some examples: - To add a string to the end of all lines in Windows, in Ctrl+H with Extended mode enabled, replace \r\n with string\r\n - To add a string to the beginning of all lines in windows, in Ctrl+H with Extended mode enabled, replace \r\n with \r\nstring - To remove extra blank lines in windows, in Ctrl+H with Extended mode enabled, replace \r\n\r\n with \r\n - To remove all newlines, in Ctrl+H with Extended mode enabled, replace \r\n with nothing.
附加一些常用正则常识
表达式 说明
\t 制表符.
\n 新行.
. 匹配任意字符.
| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".
[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字.
[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符. "[^0-9]" 匹配任意非数字字符.
* 其左边的字符被匹配任意次(0次,或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 其左边的字符被匹配至少一次(1次,或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".
? 其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".
^ 其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行.
$ 其左边的表达式被匹配在一行的结尾. 例如 "e$" 仅仅匹配以 "e" 结尾的行.
() 影响表达式匹配的顺序,并且用作表达式的分组标记.
\ 转义字符. 如果你要使用 "" 本身, 则应该使用 "\".
例子:
.删除空白行 查找模式 选扩展 目标\n\n替换为\n
原始串 1 我爱你 2 你不爱我 3 怎么办啊 321 凉办
目标串
1. 我爱你
2. 你不爱我
3. 怎么办啊
321. 凉办
处理:打开notepad++的菜单 搜索 > 替换, 查找模式选 正则表达式
查找串:(\d{1,})
替换串:\n\1.

原始串
str[1]abc[991];
str[2]abc[992];
目标串:
abc[1];
abc[2];

处理:
查找串:str\[([0-9]+)\]abc\[[0-9]+\]
替换串:abc[\1]

1】正则表达式应用 替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到abc则替换abc以及其后到行尾的内容为abc efg
即上面的文本最终替换为:
abc efg
123 abc efg
解决:在替换对话框,查找内容里输入abc (.*)同时勾选正则表达式复选框, 替换为abc efg 然后点击全部替换按钮

2】正则表达式应用 数字替换
希望把asdadas123asdasdas456asdasdasd789asdasd替换为asdadas[123]asdasdas[456]asdasdasd[789]asdasd
在替换对话框里面,勾选正则表达式复选框;在查找内容里面输入[0-9][0-9][0-9]不含引号
替换为:里面输入[\0\1\2]不含引号,范围为你所操作的范围,然后选择替换即可.

3】正则表达式应用 删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的345

解决:在替换对话框中,启用正则表达式复选框 查找内容 输入345$这里

4】正则表达式应用 替换带有半角括号的多行 \n在替换对话框启用正则表达式选项,这时就可以完成替换了

技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,且以回车符结尾

中国34个省市自治区(一直听说是36个,结果查询一下是34个),如下:
北京市
天津市
上海市
...
想改成这样:
INSERT INTO province_info(province_name) VALUES ('北京市');
INSERT INTO province_info(province_name) VALUES ('天津市');
INSERT INTO province_info(province_name) VALUES ('上海市');
...
替换,选择支持正则表达式,查找目标为
(.*)
替换为
INSERT INTO province_info(province_name) VALUES ('\1');
查找目标.*即可查找到目标,加上()为得是替换的时候用 \1 来使用
这样就可以进行快速地替换了.

512

0
512|0 | 鲜花 VS 砸蛋 | 2348阅读 0评论 notepad
上一篇: notepad++
 
不想登录?直接点击发布即可作为游客留言。
昵称  邮箱 网站 验证码 = 1+1