Insert space in between string Regex Oracle
Insert space in between string Regecp Oracle
我有一些地址格式不正确。有none我想加一个space。示例如下
Input Expected output
----- ----------------
AVEX AVE X or AVENUE X
AVE X AVE X or AVENUE X
AVENUEX AVENUE X or AVE X
AVENUE X AVENUE X or AVE X
AVEOFCITY AVE OF CITY or AVENUE OF CITY
我创建了一个下面的表达式,但它并没有在所有情况下给出正确的结果,尤其是 AVENUE 闯入 AVE NUE
SELECT REGEXP_REPLACE('AVENUEN','^(AVE(NUE)*?)(\w)',' ') rep FROM dual;
这会让你们离得更近一些。只是稍微调整了你的正则表达式以允许可选的 'NUE' 并在之后处理 0 个或更多空格。
with tbl(id, str) as (
select 1, 'AVEX' from dual union all
select 2, 'AVE X' from dual union all
select 3, 'AVENUEX' from dual union all
select 4, 'AVENUE X' from dual union all
select 5, 'AVEOFCITY' from dual
)
SELECT
id,
REGEXP_REPLACE(str,'^(AVE(NUE)?) *?(\w)',' ') rep
FROM tbl;
您可能需要另一个通行证来处理 'OFCITY' 因为谁知道在您必须允许的 AVENUE 之后会发生什么。
我有一些地址格式不正确。有none我想加一个space。示例如下
Input Expected output
----- ----------------
AVEX AVE X or AVENUE X
AVE X AVE X or AVENUE X
AVENUEX AVENUE X or AVE X
AVENUE X AVENUE X or AVE X
AVEOFCITY AVE OF CITY or AVENUE OF CITY
我创建了一个下面的表达式,但它并没有在所有情况下给出正确的结果,尤其是 AVENUE 闯入 AVE NUE
SELECT REGEXP_REPLACE('AVENUEN','^(AVE(NUE)*?)(\w)',' ') rep FROM dual;
这会让你们离得更近一些。只是稍微调整了你的正则表达式以允许可选的 'NUE' 并在之后处理 0 个或更多空格。
with tbl(id, str) as (
select 1, 'AVEX' from dual union all
select 2, 'AVE X' from dual union all
select 3, 'AVENUEX' from dual union all
select 4, 'AVENUE X' from dual union all
select 5, 'AVEOFCITY' from dual
)
SELECT
id,
REGEXP_REPLACE(str,'^(AVE(NUE)?) *?(\w)',' ') rep
FROM tbl;
您可能需要另一个通行证来处理 'OFCITY' 因为谁知道在您必须允许的 AVENUE 之后会发生什么。