【发布时间】:2021-03-08 16:16:11
【问题描述】:
我希望使用 REGEXP_REPLACE(或等效函数)将我的字符串格式化为固定长度输出。
例如。我的输入始终是 3 组随机字符串,以逗号分隔。 我希望每个捕获组的输出具有 10 个字符的固定长度(用“_”填充)。
输入:
abc,def,ghi
085,10,1234567
long words,tom,jerry
期望的输出:
_______abc_______def_______ghi
_______085________10___1234567
long words_______tom_____jerry
所以代码应该是这样的:
select regexp_replace( input, '([^,]+),([^,]+),([^,]+)',
LPAD('\1', '_', 10) || LPAD('\2', '_', 10) || LPAD('\3', '_', 10) )
from <table>
这显然没有按预期进行。
有什么想法吗?
【问题讨论】:
-
反向引用仅在字符串模式中被解析。您不能将它们用作其他函数的参数,然后将它们视为文字字符串。