红移中的 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的主要内容,如果未能解决你的问题,请参考以下文章