首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle Regexp_Replace重复字符串

Oracle Regexp_Replace重复字符串
EN

Stack Overflow用户
提问于 2022-01-17 19:52:06
回答 1查看 49关注 0票数 0

任何人都可以帮助我调整这种模式,我需要捕获彼此相邻的重复字符串(而不是分开的其他字符串),并且只保留其中一个字符串。下面是我的表达式,但我无法得到我想要的输出:

代码语言:javascript
运行
复制
SELECT 
DATA,
REGEXP_REPLACE(DATA, '(.*)(.*)\1','\1\2') TRIMMED_STR
FROM
(
SELECT 'AAA-BBB-FFF-GGG' DATA FROM DUAL
UNION ALL
SELECT 'AAA-BBB-CCC-CCC-AAA-BBB-BBB' DATA FROM DUAL
UNION ALL
SELECT 'AAA-AAA-CCC-DDD-DDD-EEE-AAA' DATA FROM DUAL
UNION ALL
SELECT 'AAA-BBB-BBB-CCC-DDD-EEE-EEE-FFF-GGG-BBB' DATA FROM DUAL
UNION ALL
SELECT 'AAA-BBB-CCC-DDD-EEE-EEE-FFF-FFF-CCC' DATA FROM DUAL
UNION ALL
SELECT 'AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-III-JJJ-DDD' DATA FROM DUAL
) STR


OLD 
AAA-BBB-FFF-GGG
AAA-BBB-CCC-CCC-AAA-BBB-BBB
AAA-AAA-CCC-DDD-DDD-EEE-AAA
AAA-BBB-BBB-CCC-DDD-EEE-EEE-FFF-GGG-BBB
AAA-BBB-CCC-DDD-EEE-EEE-FFF-FFF-CCC
AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-III-JJJ-DDD

NEW
AAA-BBB-FFF-GGG
AAA-BBB-CCC-AAA-BBB
AAA-CCC-DDD-EEE-AAA
AAA-BBB-CCC-DDD-EEE-FFF-GGG-BBB
AAA-BBB-CCC-DDD-EEE-FFF-CCC
AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-JJJ-DDD
EN

回答 1

Stack Overflow用户

发布于 2022-01-17 20:22:03

像这样吗?

代码语言:javascript
运行
复制
SQL> with str as
  2  (
  3  select 'AAA-BBB-FFF-GGG' data from dual
  4  union all
  5  select 'AAA-BBB-CCC-CCC-AAA-BBB-BBB' data from dual
  6  union all
  7  select 'AAA-AAA-CCC-DDD-DDD-EEE-AAA' data from dual
  8  union all
  9  select 'AAA-BBB-BBB-CCC-DDD-EEE-EEE-FFF-GGG-BBB' data from dual
 10  union all
 11  select 'AAA-BBB-CCC-DDD-EEE-EEE-FFF-FFF-CCC' data from dual
 12  union all
 13  select 'AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-III-JJJ-DDD' data from dual
 14  )
 15  select data old,
 16    regexp_replace(data, '([^-]+)(-[-]*\1)+', '\1') new
 17  from str;

OLD                                                NEW
-------------------------------------------------- --------------------------------------------------
AAA-BBB-FFF-GGG                                    AAA-BBB-FFF-GGG
AAA-BBB-CCC-CCC-AAA-BBB-BBB                        AAA-BBB-CCC-AAA-BBB
AAA-AAA-CCC-DDD-DDD-EEE-AAA                        AAA-CCC-DDD-EEE-AAA
AAA-BBB-BBB-CCC-DDD-EEE-EEE-FFF-GGG-BBB            AAA-BBB-CCC-DDD-EEE-FFF-GGG-BBB
AAA-BBB-CCC-DDD-EEE-EEE-FFF-FFF-CCC                AAA-BBB-CCC-DDD-EEE-FFF-CCC
AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-III-JJJ-DDD    AAA-BBB-CCC-DDD-EEE-FFF-GGG-HHH-III-JJJ-DDD

6 rows selected.

SQL>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70746790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档