2005-03-02, 12:29 AM | #1 |
注册日期: 2003-10-22
帖子: 11,051
积分:6
精华:24
现金:14342金币
资产:29325299金币
|
【转帖】Total Commander的正则表达式
Total Commander的正则表达式功能基于TRegExpr( http://regexpstudio.com/ ),实现了一个正则表达式的子集。下文中的术语来自于TRegExpr的说明文档。 语法与一般支持RegEx的编辑器类似,某些符号,如\n,在TC中不支持。下文中出现的符号和例子都经过验证,是可用的。 Total Commander在以下功能中支持正则表达式: - Commands(命令)菜单的Search(查找文件) 【文件名和文件内容都支持RegEx】 - Lister(查看) - Files(文件)菜单的Multi-Rename tool(批量重命名) - Mark(选择)菜单的select group(增加选择) 正则表达式包括普通字符,特殊字符和元字符。元字符是一些有特殊含义的标识,例如: . \ ( ) [ ] { } ^ $ + * ? 正是这些扩展含义的特殊字符组合成了灵活而功能强大的正则表达式。 普通字符:正常的字符串。 转义序列(Escape sequences):以反斜杠引导转义序列。 字符集合(Character classes):一对方括号中的字符列表,值为列表中任意一个字符。破折号表示范围,例如h-k表示h,i,j,k,即ASCII码表中介于h和k之间的字符。前导的^表示后面列表之外的字符。转义字符、破折号、元字符和方括号也可以出现在字符集合中。破折号做为普通字符出现在集合中时,应放在列表的头/尾或以转义序列\-表示。方括号做为普通字符出现在集合中时,应放在列表的头部或以转义序列表示。 元字符(Metacharacters)包括几种特殊的符号: 修饰符(Modifiers):用于改变正则表达式的行为。使用时放在表达式前面。它作用于右侧的表达式,直到遇到另一个修饰符或表达式结束。可以在表达式中插入多个修饰符。 Total Commander仅支持正则表达式的子集,例如它仅支持单行文字内的搜索,不支持多行。 例如以下文字: START 1BfxccoSJqWU2OyB3pFZiOEMkL6sJC05hSllOUyQJnD muuVRS9oUZvhJ7lct9qLOk5YDZ3Q=gWaA6lkYZBQ1qV END 想通过表达式 START\w+END 来匹配是不支持的。这样的文字搜索可以在EmEditor中实现。 一个实例-批量更名中正则表达式的应用: 这样的文件: [Kyou_kara_Ma_Ou][002v2][jap_chn][xvid_bf].avi [Kyou_kara_Ma_Ou][011][jap_chn][xvid_bf].avi [Kyou_kara_Ma_Ou][012][jap_chn][xvid_bf].avi [Kyou_kara_Ma_Ou][013][jap_chn][xvid_bf].avi 要求改名后只保留数字部分,regex是: 代码 (双击代码复制到粘贴板)search for: \[\D*.*\]\[(\d*[a-zA-Z0-9]*)\]\[.*\]Replace with: $1 效果见附图。 一直没见到有人介绍TC新增的正则表达式,我对regex一知半解,写点基本用法,有不当之处,敬请斧正。以TC帮助中的说明为主,加一些自己的理解。术语的翻译很可能不准确,也没看过关于正则表达式的中文文档,翻译过来主要方便不看英文的朋友。可能还是 用英文原词好些。 |
|
2005-04-19, 11:35 AM | #2 |
注册日期: 2005-04-10
帖子: 29
现金:6金币
资产:6金币
声望: 10
|
回复: 【转帖】Total Commander的正则表达式
fffffffffffffff
|
-10 金币
|
2005-07-20, 08:25 PM | #3 |
注册日期: 2005-07-19
住址: 深圳
帖子: 20
现金:21金币
资产:21金币
声望: 10
|
回复: 【转帖】Total Commander的正则表达式
好东西,解决不少工作上的小问题。
|
|
2005-08-19, 01:28 PM | #4 |
注册日期: 2005-08-08
住址: 肇庆
帖子: 485
现金:252金币
资产:625金币
声望: 14
|
回复: 【转帖】Total Commander的正则表达式
我都悟知道系乜~~未接触过~~~可以讲给我听这是什么吗?
|
|