[转载]正则文本替换器 - trytocatch - 博客园

[转载][分享]正则文本替换器 – trytocatch – 博客园.

正则表达式,功能很强大,很多稍微专业点的编辑器都提供正则搜索,但在替换功能上,最多提供一个对捕获组的引用(用“\n”来代码第n个捕获组),很多功能都无法实现,要么敲代码,写一个特定程序来完成,要么直接手动修改,简单重复。比如下面的场景。

3*4=?
-6*12=?
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、3*4=12
2、-6*12=-72
3、9*-5=-45

函数说明:$Seq(n,m)为序列生成器,n表示起始值,m表示步增值。

本替换器不仅能实现四则运算、求模,还可以进行字母大小写转换,进制转换(如16进制转10进制),plSQL里的Nvl、Iif,还有序列生成器等。

  如果这些函数仍满足不了你的需求,还可以自己扩展,添加自己的函数,非常方便。

  软件的帮助菜单里有详细的函数说明、使用帮助,例子,还有添加自定义函数的指导。

下载地址:http://files.cnblogs.com/trytocatch/正则文本替换器.zip

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏