首页 > Linux操作系统 > Linux操作系统 > 请教一个正则表达式的问题
在一个表中存在类似如下数据:
F01上海线淮海路支线
F02南京路线
F03四平路
邯郸路线
外滩
要求按如下规则转换:
字母和数字单独一组,每个“线”字作为一个分组标识,没有“线”字和字母的则单独作为一个分组,并在结果中去掉“线”字。转换结果应如下显示:
[F01][上海][淮海路支]
[F02][南京路]
[F03][四平路]
[邯郸路]
[外滩]
create table test(name varchar2(20));
insert into test values('F01上海线淮海路支线');
insert into test values('F02南京路线');
insert into test values('F03四平路');
insert into test values('邯郸路线');
insert into test values('外滩');
select regexp_replace(name,'([A-Z0-9]+|[^A-Z0-9线]+)线*','[\1]') name
from test;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21220558/viewspace-588687/ ,如需转载,请注明出处,否则将追究法律责任。