gpt4 book ai didi

sql - Oracle 正则表达式列出两个字符串之间的唯一字符差异

转载 作者:行者123 更新时间:2023-12-02 02:36:27 25 4
gpt4 key购买 nike

在 Oracle 10g 中,我想创建一个正则表达式来列出符合条件的字符两个字符串之间不同。

原因如下:我有一个表,其中的一个字段有时包含非法语的 Unicode 字符。

我能够列出包含这些非标准字符的行来创建 future 使用此查询进行清理:

SELECT DataID, Name, CONVERT(NAME, 'WE8ISO8859P1', 'WE8DEC')  
FROM table
WHERE NAME <> CONVERT(NAME, 'WE8ISO8859P1', 'WE8DEC' )

哪里 WE8ISO8859P1 - 西欧(我接受)

和 WE8DEC - 来自 Digital Equipment Corporation 的 8 位字符集(我知道该应用程序支持)

我想如果使用 Oracle 正则表达式,我将能够提取所有这些非标准字符的列表。但我不熟悉 Oracle 中的正则表达式,因此将不胜感激。

这是我的(不可行的)想法:

select regexp_replace("éaé", '[a-z][A-Z]', '' ) from dual;

会将“é”作为要清理的字符。

最佳答案

也许这样的事情会让你朝着正确的方向前进:

SQL> select regexp_replace('éaéABcdEF', '([a-zA-Z])', '' ) problems from dual;

PROBLEMS
--------
éé

它会为您提供每次出现的您想要识别的字符,但这也许不是问题,或者您可以对其进行优化...

关于sql - Oracle 正则表达式列出两个字符串之间的唯一字符差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com