正则表达式在 Oracle SQL 中删除开始和结束处的换行符
RegEx to remove new line feed at starting and ending in Oracle SQL
我的数据在字符串的开头和结尾包含大量换行符,这给理解数据带来了困难。示例数据如下所示。
'
sample text
new value
'
我尝试用空字符串替换 chr(10),但它删除了两行之间的换行,这是必需的。
我的代码
select REPLACE(a1, chr(10), ' ') from( select '
Sample Text
New value
' as a1 from dual);
任何建议。
尝试使用 TRIM
:
SELECT
TRIM(CHR(10) FROM col)
FROM dual
TRIM
可以选择指定要从字符串的开头和结尾删除的字符。按照下面的简短演示查看实际效果。单击 here 查看如何使用 TRIM
和一些示例。
编辑: 如果你有一个 CLOB 列并且 TRIM
不起作用,那么我们仍然可以使用 REGEXP_REPLACE
:
SELECT REGEXP_REPLACE(REGEXP_REPLACE(col, '^' || CHR(10) || '*', ''),
CHR(10) || '*$', '') AS output
FROM dual
这是一个演示,显示 REGEXP_REPLACE
代替 TRIM
工作:
trim 或删除行 feed/carriage returns/tab 的另一种方法是使用
“翻译(column_name,chr(10)|| chr(13)|| chr(09),'')”。
这对我有用。
我的数据在字符串的开头和结尾包含大量换行符,这给理解数据带来了困难。示例数据如下所示。
'
sample text
new value
'
我尝试用空字符串替换 chr(10),但它删除了两行之间的换行,这是必需的。
我的代码
select REPLACE(a1, chr(10), ' ') from( select '
Sample Text
New value
' as a1 from dual);
任何建议。
尝试使用 TRIM
:
SELECT
TRIM(CHR(10) FROM col)
FROM dual
TRIM
可以选择指定要从字符串的开头和结尾删除的字符。按照下面的简短演示查看实际效果。单击 here 查看如何使用 TRIM
和一些示例。
编辑: 如果你有一个 CLOB 列并且 TRIM
不起作用,那么我们仍然可以使用 REGEXP_REPLACE
:
SELECT REGEXP_REPLACE(REGEXP_REPLACE(col, '^' || CHR(10) || '*', ''),
CHR(10) || '*$', '') AS output
FROM dual
这是一个演示,显示 REGEXP_REPLACE
代替 TRIM
工作:
trim 或删除行 feed/carriage returns/tab 的另一种方法是使用 “翻译(column_name,chr(10)|| chr(13)|| chr(09),'')”。 这对我有用。