使用正则替换文本
2015-07-22 12:09
239 查看
使用正则替换文本
需求
有这样一段代码:var num = req.body.num; var bankcard = req.body.bankcard2; var pay_type = req.body.pay_type;
需要快速替换成如下格式:
var num = req.param.('num'); var bankcard = req.param.('bankcard2'); var pay_type = req.param.('pay_type');
分析
显然普通的替换方法做不到这样的效果,看来需要用到正则了,搜索的使用用正则很常见,但是替换的时候用正则怎么做呢?因为使用 WebStorm 开发,所以去 WebStorm Help 文档里瞄一下,哈哈,万能的 WebStorm 果然支持正则替换。见文档:https://www.jetbrains.com/webstorm/help/find-and-replace-in-path.html
这里讲到了一个 back references 向后引用的概念,在替换文本中使用 $n 来表示 back references ,就可以实现动态替换。那 back references 究竟是什么呢,还是看示例吧。
示例
就上文中的需求,我们先写出查询的正则:req.body.(\w+)
这里用到 \w+ 通配符来适配 req.body. 之后的不同内容,注意这里用括号()包起了 \w+ ,括号的作用是定义一个 back references。
那么替换的正则是:
req.param.('$1')
就这样,我们使用 $1 来动态替换 (\w+) 这个back references 匹配到的内容。
总结
正则替换不是所以编辑器都支持的,而且每个编辑器的支持方法都不一致,这里描述的方法只适用于 WebStorm ,理论上适用于 jetbrains 出品的其他编辑器如 IDEA PhpStorm PyCharm 等。查询的时候顺便找到了 Notepad++ 的正则替换实现,有兴趣的瞄一下:http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_regex_replace.html
相关文章推荐
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
- CENTOS6.5 yum配置
- expect用法[自动连接远程机器脚本]
- apicloud
- 需要MARK一下,奇怪的ANDROID SDK自带的APK加密功能的问题
- CentoOS7配置samba服务
- Yii2-整合PayPal-PHP-SDK,实测
- 正则表达式学习笔记
- 根据日期 获取两个日期相差的天数
- GRE写作必备句型
- 在OC的h头文件声明使用C++ class,不引用C++的h文件
- Java switch中使用string作为分支条件
- 解题报告:最多有多少个点在一条直线上
- poj 3083 Children of the Candy Corn dfs+bfs
- C#获取关键字附近文字算法实例
- 关于Eclipse
- HDOJ 2036 改革春风吹满地(叉乘定理)
- Mysql新增用户,权限管理
- HTML 网页截图
- python多态(摘录)