红移中的 REGEXP_REPLACE

Posted

技术标签:

【中文标题】红移中的 REGEXP_REPLACE【英文标题】:REGEXP_REPLACE in redshift 【发布时间】:2015-05-05 05:49:35 【问题描述】:

我的输入值是一个格式为“2.990.00”的字符串,我想将其转换为“2990.00”,即删除千位分隔符。我尝试了以下但没有运气。

select REGEXP_REPLACE('2.990.00','(\\d)(\\d1).(\\d2)','\\1\\2.\\3');

【问题讨论】:

最后一个点 (.) 后面的最后一个数字是否总是 2 个字符? 或者你的意思是这样的? SELECT REPLACE(SUBSTR('2.990.00',1,5), '.', ''); 输入:2.990.00 输出:2990.00 我想删除第一个点 我改进了语言以强调您要删除千位分隔符。避免使用“谢谢”和“感谢任何帮助”之类的短语。 【参考方案1】:

不妨试试

 REGEXP_REPLACE('2.990.00','(\d+)\.(\d+)\.(\d+)', '\1\2.\3')

【讨论】:

你有更多关于什么不起作用的细节吗?是语法问题吗?据我测试,我认为正则表达式和替换规则是正确的。 尝试将 \d 替换为 [0-9] 可能吗?【参考方案2】:

我修好了

选择 REGEXP_REPLACE('2.990.00','(\d).(\d1)(\d2)','\1\2\3')

谢谢

【讨论】:

以上是关于红移中的 REGEXP_REPLACE的主要内容,如果未能解决你的问题,请参考以下文章

红移中的长真空

红移中的 PERCENTILE_CONT()

红移中的 REGEXP_REPLACE

如何计算红移中的MTD

红移中的正则表达式

红移中的正则表达式