正则表达式:获取字符串中不同的字母

问题描述 投票:0回答:1

我需要获取按首次找到的顺序返回的字符串中的不同字母。我可以通过多次迭代字符串来完成此操作,但我可以在一个正则表达式中完成此操作吗?

以下是一些示例: “aa”应该返回“a”。 “ab”应该返回“ab”。 “aabbcc”应该返回“abc”。 “abccba”应该返回“abc”。

regex plsql
1个回答
0
投票

不确定是否可以使用正则表达式来完成,但普通的 sql 也可以:

WITH t (str) AS
(
   SELECT 'aabcddef'
     FROM dual
),
all_letters (l) AS
(
   SELECT SUBSTR(str,LEVEL,1) FROM t
     CONNECT BY LEVEL <= LENGTH(str)
)
SELECT
   LISTAGG(DISTINCT l)
  FROM all_letters;

abcdef

LISTAGG DISTINCT 仅从 19 日起可用。

© www.soinside.com 2019 - 2024. All rights reserved.