在 Oracle 中用 RegEx 替换列中的值
Posted
技术标签:
【中文标题】在 Oracle 中用 RegEx 替换列中的值【英文标题】:Replacing values from a column with RegEx in Oracle 【发布时间】:2017-01-20 08:27:27 【问题描述】:我需要编辑 Oracle 数据库中列的值。在此,值遵循一个模式:
123456789X
修改需要以下改动:
添加六个 0 在 0 和 X 之间添加空格123456789000000 X
我需要在单个查询中使用模式或 RegExp 进行此更改。
谢谢
【问题讨论】:
模式是什么?请提供更多详细信息。 列的模式用引号表示,值遵循相同的模式但要添加到更多值(一些 0 和空白)。 信息不足,无法提供解决方案 @MarcusStern 那么,如果字符串是Qwerty1234X
或Fred
或...怎么办?输入字符串变成输出字符串的算法是什么?
【参考方案1】:
使用regexp_replace
函数转换字符串。
您可以定义适当的转换规则,例如
SELECT REGEXP_REPLACE('Qwerty123456X',
'([[:digit:]])([[:alpha:]])', -- Rule : Digit followed by Number
'\1<bla>\2') CITY -- insert <bla> between
FROM DUAL;
---> Qwerty123456<bla>X
【讨论】:
以上是关于在 Oracle 中用 RegEx 替换列中的值的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JSON 中的值替换为 RegEx 在使用 Python 的文件中找到的值?