最近常常需要将一段代码中的中文注释拿出来,一开始都是一个一个粘贴,后来数据量太大,没发一个一个做,所以学了一下正则表达式,但却也遇到了一些问题,现在将我总结的几个在英文中取中文方式。
使用notepad++软件和正则表达式
例如下面这段代码
COMMENT ON TABLE ETL_ANALYZE_OBJECT_LOG IS '数据库对象分析日志表 系统ETL处理自用表';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.LOG_DATE IS '记录日志的时间';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.ANALYZE_START_TIME IS '分析开始时间';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.OBJECT_NAME IS '对象名称';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.OBJECT_TYPE IS '对象类型';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.ANALYZE_END_TIME IS '分析结束时间';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.USER_ID IS '用户ID';
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.TERMINAL IS '终端号';
现在想要去除空行,再拿出中文,
去除空行的办法:
ctrl键加f,选第二个替换,查找模式选择正则表达式,在查找目标里写^\r\n,替换为里面什么都不写,选右边第三个全部替换,就可以去除空行了,或者查找目标写\r\n\r\n也是可以的
拿出中文的办法:
按alt键选择多行,将能删掉的英文先删掉,变成这样
'数据库对象分析日志表 系统ETL处理自用表';
G_DATE IS '记录日志的时间';
ALYZE_START_TIME IS '分析开始时间';
JECT_NAME IS '对象名称';
JECT_TYPE IS '对象类型';
ALYZE_END_TIME IS '分析结束时间';
ER_ID IS '用户ID';
RMINAL IS '终端号';
然后再ctrl加f,在替换中填写^\w*,替换全部,(^是开始的意思,\w是字符,*代表多个),就会变成下面这样
'数据库对象分析日志表 系统ETL处理自用表';
IS '记录日志的时间';
IS '分析开始时间';
IS '对象名称';
IS '对象类型';
IS '分析结束时间';
IS '用户ID';
IS '终端号';
会发现is还在,因为is前面有空格,不算在\w里面,这时可以选择再按alt将is '批量删掉,然后再ctrl加f,将';替换掉,就拿到了所有的中文
也可以先替换掉所有的空格,再替换^\w*,但是会发现剩下了‘’.‘’这个符号,还是用上面的方法alt批量删再替换末尾的';就可以了
是不是觉得上面的很麻烦,上面的办法是我刚接触正则表达式时练着玩的,后来发现更好的办法了
ctrl加f,在查找目标中填',替换成\t\t\t\t\t\t,(\t是tab的意思),就会变成这样
COMMENT ON TABLE ETL_ANALYZE_OBJECT_LOG IS 数据库对象分析日志表 系统ETL处理自用表 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.LOG_DATE IS 记录日志的时间 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.ANALYZE_START_TIME IS 分析开始时间 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.OBJECT_NAME IS 对象名称 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.OBJECT_TYPE IS 对象类型 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.ANALYZE_END_TIME IS 分析结束时间 ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.USER_ID IS 用户ID ;
COMMENT ON COLUMN ETL_ANALYZE_OBJECT_LOG.TERMINAL IS 终端号 ;
然后按alt批量选出中文部分,再替换掉所有的空格,只需要3步,比上面简单了一些
方法3:
ctrl+F后在find what里面填[a-z],replace里什么都不填,然后替换,英文就都没了,只剩下符号和中文,然后用alt的方式删掉符号,然后就得到中文了
附上用notepad++在结尾处统一加';'的办法
ctrl加f,在查找目标里写$,在替换成里写;($是结尾的意思),或者任意你想在结尾加的
正则表达式是个好东西,可以学一下,如果我发现了更简单的办法会来更新这个文章的