sql - REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除新行\n

标签 sql regex oracle plsql

我正在尝试使用 REGEXP_REPLACE 替换字符串中的所有换行符 (\n),但有一个异常(exception) - 它们必须括在括号中才能替换。

示例:

字符串之前:

'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'

我知道必须有一个干净的正则表达式模式可以做到这一点 - 但我无法理解它。

非常感谢...

最佳答案

var2 := regexp_replace(var1, '((\)|^).*?(\(|$))|'||chr(10), '\1', 1, 0, 'n');

关于sql - REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除新行\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165274/

相关文章:

regex - 打开/关闭 Clojure 重新模式中的贪婪性

javascript - 使用 javascript 和 regExp 提取日期

sql - 基于列的查询的条件结果

php - 根据另一个表的值从一个表中进行选择

java - 从oracle数据库获取日期而不从列中获取时间

sql - 按位置和顺序对复杂的聚合属性进行 Sequelize

javascript - 需要帮助格式化字符串文字正则表达式

sql - 将listagg函数限制为前4000个字符

用于 node.js/Oracle 连接的 Oracle 库 : which one is better?

sql - oracle sql从行到列