我试图从包含换行(NL)字符(可能还有其他\n
,\r
,\t
)的表中选择一列。我想使用REGEXP来选择数据,并用空格“”替换(仅这三个)字符。
最佳答案
无需正则表达式。使用ASCII码和无聊的旧TRANSLATE()可以轻松完成此操作
select translate(your_column, chr(10)||chr(11)||chr(13), ' ')
from your_table;
这将换行符,制表符和回车符替换为空格。
TRANSLATE()比其正则表达式等效得多。但是,如果您对这种方法有所了解,则应该知道我们可以在正则表达式中引用ASCII代码。因此,此语句是上述的正则表达式版本。
select regexp_replace(your_column, '([\x0A|\x0B|`\x0D])', ' ')
from your_table;
调整之处在于以十六进制而不是基数10引用ASCII码。
关于oracle - Oracle Regexp用空格替换\n,\r和\t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407135/