regexp-replace - 如何删除雪花中数字后的字符

标签 regexp-replace snowflake-sql

我有一个类似于“22-ABCD-BC-220602-11484-TEST”的字符串,我想从该字符串的末尾删除“TEST”一词。 关键是“TEST”每次都在变化,而不是一个常量变量。所以我想做的是编写查询以删除字符串末尾数字后面的内容。 就像在这种情况下,我希望它删除 220602-11484 之后的所有内容。

我使用了这个查询

select REGEXP_REPLACE('22-ABCD-BC-220602-11484-TEST','([0-9]{6}-[0-9]{5}).*$','')

用空格替换结尾部分,但我得到的结果是'22-ABCD-BC-',它也删除了数字

最佳答案

select left('22-ABCD-BC-220602-11484-TEST', len('22-ABCD-BC-220602-11484-TEST') - charindex('-', reverse('22-ABCD-BC-220602-11484-TEST')));

我们基本上考虑了最后一个连字符之前剩下的所有内容。

引用文档:

关于regexp-replace - 如何删除雪花中数字后的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68821606/

相关文章:

sql - regexp_replace 配置单元中的正则表达式

postgresql - 使用 regexp_replace 如何用异常替换字符串

Javascript 将正则表达式\\n 替换为\n,\\t 替换为\t,\\r 替换为\r 等等

string - 将 regexprep 与元胞数组结合使用以对冒号进行格式化

regex - 使用 REGEXREPLACE 从单元格填充数据