2013年刚工作不到一年时遇到了一个需求是对大量的数据(几万条词典数据)生成insert语句后给到DBA手里操作。
由于工作经验不足的原因,当时自己想了个蠢办法是用方法一:java编写一个读取文件里的内容for循环读取数据然后生成insert的语句…(现在想想只能是一个打30分的低效办法)。
后来又遇到了此种需求,如果还要用方法一的话我得改之前的java程序(因为我的当时能力没有写出公用的东西没能供应大多的表和其他如update,delete语句),
后来问了下当年带我的师傅龙哥教我用他的方法二excel的方式大致像下面图
方法二图中红色为我要读取并生成的不同的数据,黑色是我固定的要生成的insert语句,”…”是省略。
在excel中把这些语句复制粘贴到文本中由于每个excel格中间会有\t的就是如下的图,可以在文本中替换一下。(现在想想只能是一个打60分勉强及格因为数据量大时会很卡)。
后来又遇到这种需求,庆幸当时的同事老赵教了我一招正则表达式替换,后来举一反三用到了后续的工作,以下是方法三
|
|
注:每一个”(.+)”对应$i”i这里是1开始的不是0开始,如果是$0的话就是匹配整个内容”按照\t去匹配的数据
如果看不懂正则语法推荐这个博文入门30分钟正则表达式
(推荐使用EmEditor编辑器几万条数据都不会很卡这个方法我打99分,因为我相信还有其他方法更好地满足需求,这个截图是在线的正则工具http://tool.chinaz.com/regex/)