如何使用 Regex 方法删除 SQL 中的非字母数字字符?

How to remove non-alphanumeric characters in SQL using Regex methods?

我想删除其中一列中最后一个字母数字字符后的所有非字母数字字符。

示例输入:

my_column
weofneow.ewfiew')
wefkpfn.ewoifnw)
wepfnfe.ewfipn;

示例输出:

my_column
weofneow.ewfiew
wefkpfn.ewoifnw
wepfnfe.ewfipn

我的代码现在看起来像:

SELECT replace(replace(my_column, '\'', ''), ')', '') 
FROM my_table

但是,我一直在发现字符串末尾有其他非字母数字字符的情况,并且想要一种简单(不使用函数)和干净(可能使用 RegEx)的方式来去除它们。

您可以将 REGEXP_REPLACE[^a-z0-9]+$ 的正则表达式一起使用,将其替换为空。正则表达式将匹配字符串末尾之前任意数量的 non-alphanumeric 个字符。

SELECT REGEXP_REPLACE(my_column, '[^a-z0-9]+$', '', 1, 'i')
FROM my_table