【发布时间】:2013-02-16 09:35:05
【问题描述】:
我正在尝试使用 REGEXP_REPLACE 替换字符串中的所有新行 (\n),但有一个例外 - 它们必须括在括号中才能被替换。
例子:
字符串前:
'a\n, b\n, c (a\n, b, c\n), d\n, e'
var1 := 'a
, b
, c (a
, b, c
), d
, e'
字符串后:
'a\n, b\n, c, (a b c), d\n, e'
var2 := 'a
, b
, c (a, b, c), d
, e'
我知道必须有一个干净的正则表达式模式可以做到这一点 - 但我无法理解它。
非常感谢...
【问题讨论】:
-
对于
Perl语言来说很简单,但是对于oracle..嗯..不知道,它支持哪种正则表达式。[\(](?:(.+)\n?)+[\)]替换为 $1 - 这与(.+)匹配 -
找到这个:* REGEXP_REPLACE(column_name, '(()|^).*?((|$))|,', '\1') * 来自:remove commas * 但是我无法使 \n 工作。