我的表有单列信息
Info
+ aname + + + + + + + ano + + + + + + + + + + + agender + + + + + + + + + + + + + + arace
我应该得到像
这样的输出aname+ano+agender+arace
我必须删除多个分隔符并替换为单个+
我尝试使用regexp_replace并修剪并按下面的方式工作
select trim(REGEXP_REPLACE('+aname + + + + + + +
+ano + + + + + + + +
+agender+ + + + + + + + + + +
+arace', '\ + + ', '+'),'+') from dual;
我输出为 aname +++++++ ANO +++++++ agender ++++++++++阿拉斯
答案 0 :(得分:4)
这个正则表达式可以解决问题:'\ ++'
select REGEXP_REPLACE('+aname++++++ano+++++++++agender++++++++++++arace', '\++', '+') from dual;
要摆脱前导+(就像在你的例子中一样),使用ltrim(或修剪去除尾随+)。
select ltrim(REGEXP_REPLACE('+aname++++++ano+++++++++agender++++++++++++arace', '\++', '+'),'+') from dual;