如何在 Teradata 中使用 regexp_replace 将管道 (|) 替换为 space?
How can I replace Pipe (|) with space using regexp_replace in Teradata?
我想用 space 替换我数据库中自由文本字段中的所有竖线和换行符。
我目前的方法如下所示:
SELECT
ID,
REGEXP_REPLACE(REGEXP_REPLACE(FREETEXT,'|',‘ ‘),‘\n',' ')
FROM TABLE
我的想法是换水管|使用 space 然后再次检查结果并替换所有换行符。现在的问题是那里仍然有管道弄乱了 CSV,因为我的分隔符是 |.
希望有人能帮助我。
PS:我无法将分隔符更改为其他内容。
管道符号是正则表达式中的一个特殊字符,将其拆分为多个选项,因此您必须对其进行转义。
如果您想替换所有竖线和换行符,您不必嵌套:
RegExp_Replace(FREETEXT,'[\|\n\r]',' ')
\| pipe 0x7C
\n line feed 0x0A
\r carriage return 0x0D
但由于这些是单个字符,您可以简单地使用
OTranslate(FREETEXT, '7C0A0D'xc,' ')
仅当您想用单个 space 替换连续出现的这些字符时,您才需要 RegEx:
RegExp_Replace(FREETEXT,'[\|\n\r]+',' ')
我想用 space 替换我数据库中自由文本字段中的所有竖线和换行符。
我目前的方法如下所示:
SELECT
ID,
REGEXP_REPLACE(REGEXP_REPLACE(FREETEXT,'|',‘ ‘),‘\n',' ')
FROM TABLE
我的想法是换水管|使用 space 然后再次检查结果并替换所有换行符。现在的问题是那里仍然有管道弄乱了 CSV,因为我的分隔符是 |.
希望有人能帮助我。
PS:我无法将分隔符更改为其他内容。
管道符号是正则表达式中的一个特殊字符,将其拆分为多个选项,因此您必须对其进行转义。
如果您想替换所有竖线和换行符,您不必嵌套:
RegExp_Replace(FREETEXT,'[\|\n\r]',' ')
\| pipe 0x7C
\n line feed 0x0A
\r carriage return 0x0D
但由于这些是单个字符,您可以简单地使用
OTranslate(FREETEXT, '7C0A0D'xc,' ')
仅当您想用单个 space 替换连续出现的这些字符时,您才需要 RegEx:
RegExp_Replace(FREETEXT,'[\|\n\r]+',' ')