如何在英文中文混合的段落里摘出中文

最近常常需要将一段代码中的中文注释拿出来,一开始都是一个一个粘贴,后来数据量太大,没发一个一个做,所以学了一下正则表达式,但却也遇到了一些问题,现在将我总结的几个在英文中取中文方式。

使用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,在查找目标里写$,在替换成里写;($是结尾的意思),或者任意你想在结尾加的

 

正则表达式是个好东西,可以学一下,如果我发现了更简单的办法会来更新这个文章的
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值