[分享]正则文本调换器
添加时间:2013-7-25 点击量:
正则表达式的调换题目
正则表达式,功能很强大,很多稍微专业点的编辑器都供给正则搜刮,但在调换功能上,最多供给一个对捕获组的引用(用“\n”来代码第n个捕获组),很多功能都无法实现,要么敲代码,写一个特定法度来完成,要么直接办动批改,简单反复。比如下面的场景。
34=?
-612=?
9-5=?
……
如何将问号调换为相乘获得的成果?
因为正则表达式是处理惩罚文本的,无法完成数算,也不克不及履行一些编程说话里的办法,比如说断定,也无法生成序列之类的。
解决办法——正则文本调换器
为懂得决这些日常平凡碰着的题目,我编写了一个正则文本调换器,调换内容中,容许应用函数表达式,相当于把编程的项目组封装了起来,只须要应用简单的表达式就可以完成错杂的调换,并且,及时显示匹配到的内容,和将调换为的内容。
下面是软件的截图:
调换表达式的格局为:
¥函数名(参数1,参数2,参数3)
¥函数名[引用别号](参数1,参数2,参数3)
像上方的题目,应用正则表达式:
((-?\d+)\(-?\d+)=)\?
和调换表达式:
¥(1)¥(¥(2),¥(3))
再履行调换,就完成了。
函数申明:¥(n)默示第n个捕获组,¥(n,m)默示n和m和积
若是须要将刚才的调换中,每行加上一个行号,则将调换表达式改成:
¥Seq(1,1)、¥(1)¥(¥(2),¥(3))
即可生成:
1、34=12
2、-612=-72
3、9-5=-45
函数申明:¥Seq(n,m)为序列生成器,n默示肇端值,m默示步增值。
本调换器不仅能实现四则运算、求模,还可以进行字母大小写转换,进制转换(如16进制转10进制),plsql里的Nvl、Iif,还有序列生成器等。
若是这些函数仍满足不了你的需求,还可以本身扩大,添加本身的函数,很是便利。
软件的帮助菜单里有具体的函数申明、应用帮助,例子,还有添加自定义函数的领导。
地址:http://files.cnblogs.com/trytocatch/正则文本调换器.zip
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》