首页 > 新闻动态 >  

新闻动态
NEWS

[分享]正则文本调换器

添加时间: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

文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
分享到: