试图在数据库中清理一些数据,我们需要从数据库中的一些文本列中删除这些字符。需要找到所有具有这些字符的行,然后我将替换它们,并将它们发送给数据团队,以使用用户提供的所需替换进行重新插入
regexp_like (DESCRIPTION, '&|*|>=|;|?| |[|]')
最后只返回表中的每一行
这是一个oracle数据库
需要在数据库的文本字段中找到以下任何一项:
&
*
>=
;
?
(double spaces)
[
]
使用:转义具有特殊regex含义的字符(在您的情况下是字符
"*?|[]"
(
regexp_like (description, '&|*|;|?|[|]| |||>=')
观看现场演示。
或者将单个字符放在一个字符类中,其中大多数字符都失去了其特殊的正则表达式含义,因此不需要转义:
regexp_like (description, '[&*;?|[]|]| |>=')
观看现场演示。
将转义的]
放入字符类中
regexp_like (description, '[&*;?|[]]| |>=')
应该有效(它适用于我使用过的所有regex风格(,但不适用于Oracle🤷.