@H_301_1@
@H_301_1@很久以前很喜欢Total Commander,但是较老的版本不支持树,所以就放弃了。改用xplorer2这个文件资源管理器。但是,不知道xplorer2最近抽什么风,老师无缘无故的崩溃,所以又开始使用Total Commander了。不过,重新用起来这个,发现比老的版本好太多了。所以,现在决定,重新开始使用Total Commander了。
搜索:(.*) - (.*)/.mp3
替换为:$2($1).mp3
其中$1代表第1对括号中的表达式匹配的文字,$2代表第2对括号中的表达式匹配的文字。 @H_301_1@后向引用(backreferences) @H_301_1@/1至/9。/n解析为第n个子表达式已匹配的内容。 @H_301_1@例如:go12gogogoza34 中搜索(g.+)(/d+)/1+ 会搜索到go12gogogo,第1个表达式匹配go,第2个表达式匹配12,后面的3组go是由/1+匹配的。 @H_301_1@修饰符(Modifiers) @H_301_1@用于改变正则表达式的行为。使用时放在表达式前面。它作用于右侧的表达式,直到遇到另一个修饰符或表达式结束。可以在表达式中插入多个修饰符。 @H_301_1@例如:如果希望在文件Copy1.txt,copy2.txt中仅搜索小写copy开头的文件时,使用:(?-i)copy.*/.txt。如果不使用正 则表达式,由于搜索文件时默认是不区分大小写的,搜索copy*.txt时也会得到Copy1.txt。搜索文字时,表达式 (?i)Saint-(?-i)Petersburg得到的结果中,Saint可以有不同的大小写组合,但末尾的单词必定是Petersburg。 @H_301_1@Total Commander仅支持正则表达式的子集,例如它仅支持单行文字内的搜索,不支持多行。 @H_301_1@注:主体内容非原创,资料多数来源网络,源文地址不可考!
@H_301_1@我用编辑器或者资源管理器,很看重的一个功能是:是否支持正则表达式。因为这玩意的确能极大的提高搜索、替换的效率。这次Total Commander没人令人失望。 @H_301_1@Total Commander的正则表达式功能基于TRegExpr( http://regexpstudio.com/ ),实现了一个正则表达式的子集。下文中的术语来自于TRegExpr的说明文档。语法与一般支持RegEx的编辑器类似,某些符号,如/n,在TC中不 支持。下文中出现的符号和例子都经过验证,是可用的。 @H_301_1@Total Commander在以下功能中支持正则表达式:
- Commands(命令)菜单的Search(查找文件) 【文件名和文件内容都支持RegEx】
- Lister(查看)
- Files(文件)菜单的Multi-Rename tool(批量重命名)
- Mark(选择)菜单的select group(增加选择)
- /xnn ASCII码值为十六进制数nn的字符,例如/x20代表空格。
- /t TAB制表符,等同于/x09
- /[ 和 /] 左/右方括号。因为方括号是元字符,所以表示这两个符号本身时,用这种转义序列。
- // 反斜杠
- /. 句号(因为它也是元字符)。匹配其它元字符本身时,都可以用转义序列。
- [aeIoU] aeIoU中任意一个字母。
- [a-z^rt] a至z的小写字母,但不含r和t。
- M[ae][iy]er 可以匹配:Mayer,Meyer,Maier,Meier。
- [0-9a-zA-Z] 匹配所有数字、大小写字母。
- []/d-] 匹配右方括号,数字,破折号。它等同于[/]0-9/-]
- ^ 行首,例如,^step仅匹配"step by step"中的第1个单词。TC中与/A作用相同。
- $ 行尾,例如,step$仅匹配"step by step"中的最后一个单词。
- . 任意字符
- /w 字母,数字或下划线_,等同于[a-zA-Z0-9_]
- /W /w的补集
- /d 数字
- /D 非数字
- /s 空白字符,等同于[ /t/n/r/f])
- /S 非空白字符
- /b 单词边界,指介于两个紧邻的/w和/W之间的位置。应与其它字符合用,例如/brun/b会匹配"how to run cmd: running"中to后面的run,但不会匹配running中的run。
- /B /b的补集
- * 零次或多次
- + 一次或多次
- {n} n次
- {n,} 至少n次
- {n,m} 至少n次,至多m次
搜索:(.*) - (.*)/.mp3
替换为:$2($1).mp3
其中$1代表第1对括号中的表达式匹配的文字,$2代表第2对括号中的表达式匹配的文字。 @H_301_1@后向引用(backreferences) @H_301_1@/1至/9。/n解析为第n个子表达式已匹配的内容。 @H_301_1@例如:go12gogogoza34 中搜索(g.+)(/d+)/1+ 会搜索到go12gogogo,第1个表达式匹配go,第2个表达式匹配12,后面的3组go是由/1+匹配的。 @H_301_1@修饰符(Modifiers) @H_301_1@用于改变正则表达式的行为。使用时放在表达式前面。它作用于右侧的表达式,直到遇到另一个修饰符或表达式结束。可以在表达式中插入多个修饰符。 @H_301_1@例如:如果希望在文件Copy1.txt,copy2.txt中仅搜索小写copy开头的文件时,使用:(?-i)copy.*/.txt。如果不使用正 则表达式,由于搜索文件时默认是不区分大小写的,搜索copy*.txt时也会得到Copy1.txt。搜索文字时,表达式 (?i)Saint-(?-i)Petersburg得到的结果中,Saint可以有不同的大小写组合,但末尾的单词必定是Petersburg。 @H_301_1@Total Commander仅支持正则表达式的子集,例如它仅支持单行文字内的搜索,不支持多行。 @H_301_1@注:主体内容非原创,资料多数来源网络,源文地址不可考!