我想在我的数据库中的自由文本字段中用空格替换所有管道和换行符。
我目前的做法如下:
SELECT
ID,
REGEXP_REPLACE(REGEXP_REPLACE(FREETEXT,'|',‘ ‘),‘\n',' ')
FROM TABLE
我的想法是更换管道使用空格然后再次检查结果并替换所有换行符。现在的问题是那里仍然存在管道,因为我的分界符是|。
希望有人可以帮助我。
PS:我无法将分隔符更改为其他内容。
答案 0 :(得分:1)
管道符号是正则表达式中的特殊字符,将其拆分为多个备选项,因此您必须将其转义。
如果要替换所有管道和换行符,则不必嵌套:
RegExp_Replace(FREETEXT,'[\|\n\r]',' ')
\| pipe 0x7C
\n line feed 0x0A
\r carriage return 0x0D
但由于这些是单个字符,您只需使用
即可OTranslate(FREETEXT, '7C0A0D'xc,' ')
只有当您想用一个空格替换这些字符的连续出现时,您需要一个RegEx:
RegExp_Replace(FREETEXT,'[\|\n\r]+',' ')