诉求
我们经常需构造一些数据变成SQL或者JAVA代码,但是数据内容其实是从excel或者别的地方复制过来的,如下的字符串
aa
bbbbbb
ccc
我们在SQL中需要变成
select * from tab where col in ('aa','bbbbbb','ccc')
或者在JAVA中变成
String[] arr=new String[]{"aa","bbbbbb","ccc"};
其实规律很直接,我们就是需要在每一行的前后追加一下单引号/双引号再补充一个,号就行。
思路
拍大腿想到的办法
我们要做的其实就是拿到每一行,然后在每一行前后追加点我们要的数据,虽然每行开头其实可以用列编辑的操作追加一下,但是每行末尾因为那个字符串长度其实并不一样,也不好列编辑。
大神给的办法
一般大神的思路是,我如果可以选择一行我追加不就得了,这个时候需要请出我们强大的正则操作了,VSCODE是支持正则的,在替换的时候我们需要进行组捕获。
直接上货,在替换的时候选择正则模式,这个是前提
接下来,匹配的时候输入 ,匹配整行的正则
(.*)
第三,替换结果的时候输入’$1’, 这个的含义是表示引用匹配到的内容,在前后追加单引号和逗号,具体就是,我们匹配到上面的aaa,则替换之后变成 ‘aaa’, 这种效果,原有匹配的内容aaa会在替换结果中继续使用
'$1',
然后点击替换,就是我们要的效果了
延伸
细心的小伙伴肯定发现了,我们其实在匹配的时候引用到了原文,方面我们做更多的事情了,比如说追加删除部分的内容,这比传统的替换方式强大很多。好了,点到为止~~~