正则表达式在Nodepad++中的使用
一、基础表达法
\
转义字符 如:要使用 “\” 本身, 则应该使用“\”\t
Tab制表符 注:扩展和正则表达式都支持\r
回车符CR 注:扩展支持,正则表达式不支持\n
换行符LF 注:扩展支持,正则表达式不支持\r\n
正则表达式可表示回车换行.
匹配任意一个字符^
其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行$
其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行|
或运算符,匹配表达式左边和右边的字符串。如:ab|bc匹配“ab”或“bc”[]
匹配列表中任意单个字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意单个数字[^]
匹配列表之外的任意单个字符。*
其左边的字符被匹配任意次(0次或多次)。如:be*匹配“b”,“be”或“bee”+
其左边的字符被匹配至少一次(1次或多次)。如:be+匹配“be”或“bee”,但不匹配“b”?
其左边的字符被匹配0次或者1次。如:be?匹配“b”或“be”,但不匹配“bee”;\r?\n匹配行结尾符()
影响表达式匹配的顺序(类似C++的小括号会影响表达式运算顺序),并且用作表达式的分组标记(标记从1开始)如:([a-z]bc)smn\1匹配“tbcsmntbc”;另见:看下文的示例{}
指定前面的字符或分组的出现次数 如:abc{3}匹配abccc;a(bc){2}匹配abcbc\d
匹配一个数字字符。等价于:[0-9]\D \d
取反,匹配一个非数字字符。等价于:[^0-9]\s
匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ \t]\S \s
取反的任意单个字符。\w
匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_]\W \w
取反的任意单个字符。等价于:[^A-Za-z0-9_]\b
匹配单词起始处或结尾处
二、CTRL+H
勾选正则玩法
正则替换框内,输入以下Pattern和Replace,相同效果。
文本控制字符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;其他类型控制字符。
Pattern | Replace | Meaning |
---|---|---|
[[:alpha:]] | [A-Za-z] | 匹配一个英文字母 |
[[:digit:]] | [0-9] | 匹配一个数字 |
[[:xdigit:]] | [0-9A-Fa-f] | 匹配一个十六进制数字 |
[[:alnum:]] | [0-9A-Za-z] | 匹配一个字母数字 |
[[:lower:]] | [a-z] | 匹配一个小写英文字母 |
[[:upper:]] | [A-Z] | 匹配一个大写英文字母 |
[[:blank:]] | [ \t] | 匹配一个空白(空格或者制表符) |
[[:space:]] | [ \t\r\n\v\f] | 匹配一个空白符 |
[[:graph:]] | [\x21-\x7E] | 匹配一个图形字符 |
[[:print:]] | 图形字符(计算机录入的基本字符)和空格 | 匹配可打印字符 |
[[:cntrl:]] | 控制字符见上注释 | 控制(control)字符 |
[[:punct:]] | [-!"#$%&’()*+,./:;<=>?@[]_`{ | 匹配一个标点字符 |
三、玩法
>>>
比如我们有这么一份sql:
INSERT INTO EMP1 VALUES(7369, 'SMITH', 'CLERK', 7902, '17-12月-80', 800, NULL, 20);
INSERT INTO EMP2 VALUES(7499, 'ALLEN', 'SALESMAN', 7698, '20-2月 -81', 1600, 300, 30);
INSERT INTO EMP3 VALUES(7521, 'WARD', 'SALESMAN', 7698, '22-2月 -81', 1250, 500, 30);
INSERT INTO EMP4 VALUES(7566, 'JONES', 'MANAGER', 7839, '02-4月 -81', 2975, NULL, 20);
INSERT INTO EMP5 VALUES(7654, 'MARTIN', 'SALESMAN', 7698, '28-9月 -81', 1250, 1400, 30);
现在,我发现我的库名没有写,需要带上库名(TEST),每一条变成这样:
INSERT INTO TEST.EMP5 VALUES(7654, 'MARTIN', 'SALESMAN', 7698, '28-9月 -81', 1250, 1400, 30);
使用nodepad++的手动宏记录,来一键傻瓜批量操作。
作业:
- 使用nodepad++打开你要处理的sql
- CTRL+H唤起替换窗口,选择正则表达式,并勾选匹配新行
- 查找表达式填入?
- 替换表达式填入?