读书人

施用notepad++操作文本

发布时间: 2013-01-08 14:02:13 作者: rapoo

使用notepad++操作文本

\r为回车?? return?? 按Enter键
\n为换行?? next

\t tab键按出来的那段字符串

正则表达式

\d?? 表示任意数字

. ?匹配任意字符.?这这匹配任意一个字符,包括制表符
| 匹配表达式左边和右边的字符. 例如, "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" 结尾的行.?
() 圆括号“(”和“)”分别为匹配区域的起始和结束,并且用作表达式的分组标记.?
\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\".?

1.去掉空行:\r\n\r\n? 替换成?? \r\n? 使用正则表达式或扩展方式查找替换

2.\[([a-z]+)\]?? 匹配?? [abcdefg]

3.查找以ab开头,n结尾的? 如:ab12121212n??????????? ^ab.*n$???

?

例子:?
原始串?
str[1]abc[991];?
str[2]abc[992];?
str[11]abc[993];?
str[22]abc[994];?
str[111]abc[995];?
str[222]abc[996];?
str[1111]abc[997];?
str[2222]abc[999];?

目标串:?
abc[1];?
abc[2];?
abc[11];?
abc[22];?
abc[111];?
abc[222];?
abc[1111];?
abc[2222];?

处理:?
查找串:str\[([0-9]+)\]abc\[[0-9]+\]?
替换串:abc[\1] ?\1就代表上述"查找串"([0-9]+)的结果任意多个数字串

【1】正则表达式应用——替换指定内容到行尾?
原始文本如下面两行?
abc aaaaa?
123 abc 444?

希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”?
即上面的文本最终替换为:?
abc efg?
123 abc efg?

解决:?
① 在替换对话框,查找内容里输入“abc.*”?
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮?
其中,符号的含义如下:?
“.” =匹配任意字符?
“*” =匹配0次或更多?

注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。?

【2】正则表达式应用——数字替换?
希望把?
asdadas123asdasdas456asdasdasd789asdasd?
替换为:?
asdadas[123]asdasdas[456]asdasdasd[789]asdasd?

在替换对话框里面,勾选“正则表达式”复选框;?
在查找内容里面输入“([0-9])([0-9])([0-9])”,不含引号?
“替换为:”里面输入“[\1\2\3]”,不含引号
范围为你所操作的范围,然后选择替换即可。?

实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例?
上面重复使用了“[0-9]”,表示连续出现的三个数字?
“\1”代表第一个“[0-9]”对应的原型,“\2”代表第二个“[0-9]”对应的原型,在替换表达式中,“\1”表示第一个匹配区域所匹配的内容,依此类推,“\n”表示第 n(可取 1-9)个匹配区域所匹配的内容(在notepad++中\0没有意义)。“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\1\2\3其它”,则替换结果为:?

asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd?

功能增强(by jiuk2k):?
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 … ?大家根据需要定制?
相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下?

【3】正则表达式应用——删除每一行行尾的指定字符?
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现?
比如?
12345 1265345?
2345?
需要删除每行末尾的“345”?
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下?
解决:?
在替换对话框中,启用“正则表达式”复选框?
在查找内容里面输入“345$”?
这里“$”表示从行尾匹配?

如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串?
a. 选择要操作的行?
b. 编辑-格式-删除行注释?
c. 在弹出对话框里面输入要清除的行首字符,确定?

【4】正则表达式应用——替换带有半角括号的多行?
几百个网页中都有下面一段代码:?
\n?
在替换对话框启用“正则表达式”选项,这时就可以完成替换了?

【5】正则表达式应用——删除空行?
启动EditPlus,打开待处理的文本类型文件。?
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围” 中的“当前文件”,表明对当前文件操作。?
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。?
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且 以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。?
直接在”查找”中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。?
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符 即符合查找条件。?
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。?
(4)选择“制表符”,添加代表制表符的“\t”。?
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。?
(6)选择“换行符”,插入“\n”,表示回车符。?
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时 存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。????

读书人网 >开源软件

热点推荐