【发布时间】:2020-02-18 10:33:04
【问题描述】:
我正在寻找的是一些正则表达式,它将在某些字符前面的 varchar 列中添加 \\ 字符(例如 "、\ ... N 个字符)。
示例:James"Bond\007 -> James\"Bond\\\007
我可以用 N 替换来做到这一点,但如果 oracle 提供它,我正在寻找更优雅的解决方案。
REPLACE(REPLACE(ColumnX, '\', '\\'), '"', '\"')
P.S 需要 oracle 12.1 和 oracle 12.2
【问题讨论】:
-
提示:(1) 字符类 (2) 反向引用(在正则表达式中)
-
你看过
REGEX_REPLACE吗?在您的情况下可能有用。 -
@Lucas 我有但没有,它可以将所有 x|y|z 字符替换为 k,而不是 k[x|y|z]
-
演示字符类和反向引用。看到这个db fiddle
-
啊现在我明白了@Abra,感谢您帮助我了解如何使用反向引用:)