实践总结:使用正式表达式快速生成代码
概述
在写代码或者写文档的时候,经常需要将数据库表字段格式化,或者转换为java规范的变量,在实践中总结出来,使用工具+正式表达式,可以简化很多的Ctrl+C/Ctrl+V或修改大小写等繁琐事业,并且能减少误操作。在有规律的,大批量数据的时候,这种处理办法尤其快。以下演示在notepad++中使用正则表达式替换字符大小写。
例1. 将建表字段,做成SELECT字段并包含注释
(1) 原始数据
`ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID', `ORG_ID` int(11) DEFAULT NULL, `PRODUCT_CATEGORY_ID` varchar(50) DEFAULT NULL COMMENT '产品分类ID',
(2) 要求处理结果
SELECT `id` AS `id` -- 记录id , `org_id` AS `org_id` -- 组织id , `product_category_id` AS `product_category_id` -- 产品分类id FROM table
(3) 处理过程
- 步骤1. 正式表达式为:
^([^ ]+).+'(.+)'.+
替换为, \L$1 \UAS \L$1 -- $2
。主要是将开头非空格的全部字符提取作为变量1,将后面一对单引号所引的内容提取为变量2,组成字段表 - 步骤2. 在前面加上SELECT,在后面加上FROM table,就成为一条完整的SQL,对于字段很多的表,处理优势很明显
(4) 示例图
例2. 将EXCEL表中字段及注释,做成SELECT字段并包含注释
(1) 原始数据
id 主键 org_id 组织编码 product_category_id 产品分类ID
其中数据是由EXCEL表格copy出来的,字段和注释间是TAB符号
(2) 要求处理结果
SELECT id AS id -- 主键 , org_id AS org_id -- 组织编码 , product_category_id AS product_category_id -- 产品分类id FROM table
(3) 处理过程
- 步骤1. 正式表达式:
(.+)\t(.+)
替换为, \L$1 \UAS \L$1 -- $2
。主要是将TAB字符(t)前后分别提示为变量1和变量2,然后组成结果字符串 - 步骤2. 在前面加上SELECT,在后面加上FROM table,就成为一条完整的SQL,对于字段很多的表,处理优势很明显
例3. 将以下数据表字段转为java替换的变量名:
(1) 原始数据。其中字段和注释间是TAB符号
id 主键 org_id 组织编码 product_category_id 产品分类ID
(2) 要求处理结果
/** * 主键 */ private String id; /** * 组织编码 */ private String orgId; /** * 产品分类ID */ private String productCategoryId;
处理后,直接变成了java实体类的属性,如果类型不一样,再修改一下类型就行。再配合eclipse生成getter和setter方法,一个完整的实体类就出来了。不需要安装插件,快速简单方便。
(3) 处理过程
- 步骤1.
_([a-z]{1})
替换为\u$1
,即下划线后的第1个字段全部改为大写; - 步骤2.
(.+)\t(.+)
替换为/\*\*\r\n \* $2\r\n \*/\r\nprivate String $1;
例4. 数据库字段表做成文档
(1) 原始数据
`ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '记录ID', `ORG_ID` int(11) DEFAULT NULL, `PRODUCT_CATEGORY_ID` varchar(50) DEFAULT NULL COMMENT '产品分类ID',
(2) 要求处理结果
- id : 记录id - orgId : - productCategoryId : 产品分类id
(3) 处理过程
- 步骤1. 取出字段名和注释,用tab键隔开,且字段名转为小写。查的目标:
`([\w\d]+)`[^'\r\n]+('([\w\d]+)')?.+
替换为:\L$1\t$3
- 步骤2. 下划线后的字段转为大写。查的目标:
_([a-z]{1})
替换为:\U$1
- 步骤3. 格式化数据。查的目标:
(.+)\t(.*)
替换为:- $1 : $2
总结
使用工具+正式表达式,可以处理很多东西,比如来源文档、excel、网页、日志的各种内容,只要善于总结和使用,都可以大大减轻工作量。
即使撸代码,要也善于总结规律,提升处理技巧。经常看到一些人,一些同事日复一日的重复枯燥无味的事情,烦躁而又无奈,故分享一些撸码的技巧,希望有所帮助。
附加
另附在网上找到的ElLuU等参数的说明:
E
Terminate L or U conversion
l
Convert next character to lowercase
L
Convert all characters up to E to lowercase
u
Convert next character to uppercase
U
Convert all characters up to E to uppercase

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
同是3年开发经验,为什么你的技术比别人差很多?
你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差),主要和勤奋程度、提升方法有关。 勤奋程度不必多说,全靠自我监督和自制力。在这里我们详细谈谈提升方法,毕竟好的提升方法会让你事半功倍。到底有哪些有效的好方法,能帮助我们进阶成Java高级工程师呢? 下面这3种方法,你应该加以重视: ● 吃透基础技术 ● 养成良好的阅读源码的习惯 ● 有长期的技术学习规划 下面,我们来一起逐条看看,特别是第 3 个方法。 1.吃透基础技术 基础技术是各种上层技术共同的基础。吃透基础技术是为了更好地理解程序的运行原理,并基于这些基础技术进化出更优化的产品。很多分布式系统架构,以及高可用、高性能、高并发的解决方案基本都可以在基础技术上找到它们的身影。所以,对基础技术的学习才能够更好地掌握更高维度的技术。 很多人会觉得底层技术博大精深,从语言、编程范式、算法和数据结构、计算机原理、网络、数据库、分布式技术等等,怎么可能有时间去掌握这么多东西呢。这确实需要持续学习的毅力,现在很多技术大牛仍在夯实扩展自己的底...
- 下一篇
模型调优没效果? 不妨试试Batch Normalization!
今儿调模型大佬又给支了一招,叫Batch Normalization(下面简称BN),虽然还没有深刻理解这玩意是什么,但是是真的挺有效的,哈哈。因此本文只是总结一下BN的具体操作流程以及如何用tensorflow来实现BN,对于BN更深层次的理解,为什么要BN,BN是否真的有效大家可以参考知乎上的回答:https://www.zhihu.com/question/38102762 1、BN的流程 传统的神经网络,只是在将样本x进入到输入层之前对x进行0-1标准化处理(减均值,除标准差),以降低样本间的差异性,如下图所示: BN是在此基础上,不仅仅只对输入层的输入数据x进行标准化,还对每个隐藏层的输入进行标准化,如下图所示: 可以看到,由标准化的x得到第二层的输入h1的时候,经历了如下的步骤: 1、第一层的权重项w 和 输入x想成,得到s1
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块