继上一版本RegeX发布以来已有三年多了,此次发布全新设计的RegeX 3供广大开发者使用。
新版基于Silverlight开发,支持安装到本地运行,采用类似WindowsPhone7的Metro风格设计。
新版本的主打功能有两点:
- 支持无限层级的复杂多重匹配与替换
- 支持在替换时以$@符号引用经过处理后的组内容
这两个功能主要为了解决如下问题:
- 冗长的表达式结构。
在匹配复杂的格式时,使用的表达式不仅冗长,且晦涩如天书,一旦修改时不小心改变了某个符号后患无穷。
无限级多重替换功能将极大改善这一情况,你可以将替换工作拆分成若干个步骤,分别处理,使得思路清晰,表达式易于维护。 - 不可能的任务。
正则表达式是万能的,但万这个数字并不大,有很多格式是不可能或很难用一个表达式来完成的,很多时候我们需要自己来写一个新程序予以解决,而当有了$@引用功能,很多问题迎刃而解。
$@符号允许引用目标组的处理结果,比如以前我们在替换时以$1形式引用组1的内容,现在我们可以对$1组再进行正则替换,然后以$@1形式引用其替换结果,这在处理复杂格式时极为有用。
立即开始使用RegeX3:http://www.cnblogs.com/SkyD/articles/regex3.html
提示:程序中单击右键可以安装到桌面,并脱离浏览器运行:
使用入门
首先在源文本框中输入要处理的字符,通常通过剪切板粘贴入:
然后输入表达式及匹配选项:
再输入替代内容及替代选项:
单击执行替换按钮:
此时匹配项和结果都将出现在左栏,展开以查看:
此时在右侧你可以通过集合记录导航功能查看具有多个结果的节点:
此时你可以继续对任意节点进行正则替换操作,以达成需求。
全部处理完毕后,点击复制最终输出结果按钮可以复制最下面的OutPutText节点文本到剪切板:
通过导入导出功能可以读取和保存所有数据:
特别提示
这里形如$0或${FuncName}或$@{Parameters}的名称即是在替换时的引用标记,上述三个形式分别代表组、命名组和经过处理的命名组,替换时可以以$形式引用子级节点内容,或以$@形式引用孙级节点内容。
当前所选节点能够引用的后代节点都使用浅黄色表示。
后面的[105]表示该组有105个项,可以通过滑动导航条查看每一项:
小技巧
点选任意一个$开头的节点后,按Ctrl+C可以直接复制其替换时的引用字符到剪切板:
除此之外,还有个更方便的办法,就是直接在$开头的节点上点鼠标右键,即可直接将其引用字符复制到剪切板:
如果引用孙级节点的处理结果还不能满足你的话,你还可以继续对其进行处理,每多一层处理,引用时就多些一个@:
这样你的表达式可以像树杈一样不断延展,但始终都不脱离主干。
本文转自斯克迪亚博客园博客,原文链接:http://www.cnblogs.com/SkyD/archive/2012/01/02/2309769.html,如需转载请自行联系原作者