[分享]正则文本调换器

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

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