【效率】使用正则表达式进行文本替换

237 阅读1分钟

有时候不仅需要使用正则来查询,还需要替换内容,而且要替换查询的内部结果。

比如:替换日期的格式 2019/09/04 替换成 2019-09-04

这就需要用到正则里面参数的概念。

上面这个日期,使用正则查询就是

/\d+\/\d+\/\d+/g

这样查到的是一个整体,怎么替换呢,就要对三个日期中的数字设置变量,使用括号:

/(\d+)\/(\d+)\/(\d+)/g

于是,就可以使用下面的语句来替换:

$1-$2-$3

第一个括号内容就是$1,第二个就是$2,以此类推。

其实在nginx的location配置用也使用了同样的方法进行正则的局部查询。

最后,如果要直接取全部变量,就是

$&

同样,如果要把20190904这种类型的日期变成标准日期呢?

/(20[12][6-90])([01][0-9])([0-3][0-9])/g

当然,这样的话要注意会不会匹配到别的字段,比如金额或者编号,要格外小心。

替换成下面这样就可以了

$1-$2-$3

参考: help.highbond.com/helpdocs/an…