由于处理反标文件,而notepad 正好有正则表达式,
一、找了不久,比较好的学习网页:
1)Notepad++的正则表达式替换和替换
http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_regex_replace.html
Notepad++底层是使用SciTE的库的
2)Notepad++正则表达式
http://sgsoft.blog.163.com/blog/static/53772554201211493734655/
3) 正则表达式30分钟入门教程
http://www.jb51.net/tools/zhengze.html
二.、举例
需要把ha_bwdata[100]_net_1,ha_bwdata[10]_net_1,ha_bwdata[1]_net_1
改为ha_bwdata_tmp[100]_net_1,ha_bwdata_tmp[10]_net_1,ha_bwdata_tmp[1]_net_1
ha_bwdata\[([0-9]+)\]_net_1
首先括号不能省,表示域的开始和结束,否则后面替换\1没法表示,不能实用\0,有些网页是误导!
另外[]等符号需要添加\表示其不是正则表达式语法
ha_bwdata_tmp\[\1\]_net_1
\n 你可以是1到9的正在替换的1到9的域,
zt:
第一部分:要开始用正则表达式前,必须了解特殊字符列
正则表达式的特殊字符列表如下:
.
匹配任意字符
(
标记域(regex)的开始符(具体使用可参见例子)
)
标记域的结束符(具体使用可参见例子)
\n
n可以是1到9 代表正在替换的第一到第九的标记域
\<
匹配Scintilla定义的单词的开始
\>
匹配Scintilla定义的单词的结束
\x
转义符. 例如, \[ 表示 [ 而不是字符集(character set)的开始符.
[...]
字符集(character set), 例如, [abc] 代表字符 a, b or c. 也可以使用范围, 如 [a-z] 代表所有小写字母
[^...]
非字符集中的字符. 例如, [^A-Za-z] 代表处理大小写字母以外的字符
^
行开始符
$
行尾符
*
匹配0次或多次. 例如, Sa*m 匹配 Sm , Sam , Saam , Saaam等等.
+
匹配1次或多次. 例如, Sa+m 匹配 Sam , Saam , Saaam and 等等.
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
正则表达式30分钟入门教程
.是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在\bhi\b.*\bLucy\b的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词
第二部分:五个例子
例子1:
目标:如何把 Fred2XXX 替换成 Sam2YYY
技巧:搜索 Fred([1-9])XXX 替换成 Sam\1YYY
例子2:
目标:把 == title == 替换成 = title =
技巧:分两步:1, 搜索 ^=(=) 替换成 \1 ;2, 搜索=(=)$ 替换成\1。
例子3:
目标:把德国日期格式(dd.mm.yy) 转换成(yy-mm-dd)格式。
技巧:搜索 ([^0-9])([0123][0-9])\.([01][0-9])\.([0-9][0-9])([^0-9]) 替换成\1\4-\3-\2\5
* 31.12.97 became 97-12-31
* 14.08.05 became 05-08-14
* the IP address 14.13.14.14 虽然匹配,但是要小心不要改变
例子四:
目标:在一个目录中通过命令 dir /b/s > filelist.txt,修改文件中的\为/,并加上前缀file:///。
技巧:分两步:1, 搜索 \\ 替换为 / ;2, 搜索 ^(.*)$ 替换为 file:///\1
例子五:(英文原文中,这个例子有误,我这里修正了)
目标:把文中的空格替换成,
[Data]
EU AX ALA 248 ?and Islands
EU AL ALB 008 Albania, People's Socialist Republic of
AF DZ DZA 012 Algeria, People's Democratic Republic of
OC AS ASM 016 American Samoa
EU AD AND 020 Andorra, Principality of
AF AO AGO 024 Angola, Republic of
NA AI AIA 660 Anguilla
AN AQ ATA 010 Antarctica (the territory South of 60 deg S)
NA AG ATG 028 Antigua and Barbuda
SA AR ARG 032 Argentina, Argentine Republic
AS AM ARM 051 Armenia
NA AW ABW 533 Aruba
OC AU AUS 036 Australia, Commonwealth of
[Final Data]
EU,AX,ALA,248,?and Islands
EU,AL,ALB,008,Albania, People's Socialist Republic of
AF,DZ,DZA,012,Algeria, People's Democratic Republic of
OC,AS,ASM,016,American Samoa
EU,AD,AND,020,Andorra, Principality of
AF,AO,AGO,024,Angola, Republic of
NA,AI,AIA,660,Anguilla
AN,AQ,ATA,010,Antarctica (the territory South of 60 deg S)
NA,AG,ATG,028,Antigua and Barbuda
SA,AR,ARG,032,Argentina, Argentine Republic
AS,AM,ARM,051,Armenia
NA,AW,ABW,533,Aruba
OC,AU,AUS,036,Australia, Commonwealth of
技巧:搜索 ([A-Z]+) ([A-Z]+) ([A-Z]+) ([0-9]+) (.*) 替换为 \1,\2,\3,\4,\5
本文来自博客园,作者:{e_shannon},转载请注明原文链接:https://www.cnblogs.com/e-shannon/p/5816727.html