我发现\Q\E
在甲骨文中不起作用
oracle正则表达式的\Q\E
的等价表达式是什么?
答案 0 :(得分:5)
在Perl中,\Q
启动自动转义特殊字符,\E
停止此行为。因此,在\Q \E
块内,点将被视为文字点而不是任何字符。
如果Oracle不支持此功能,那么只需转义该块中的任何特殊字符。
答案 1 :(得分:0)
这是一个老问题,但使用Java可以做到
Pattern.quote(yourString);
返回文字字符串。因此,字符串.
将返回\Q.\E
,这将被匹配者视为一个句点。
答案 2 :(得分:0)
这是旧的,但在Oracle Database 11g 11.2.0.1.0版中仍然存在问题,我在其他地方看不到它。所以,如果它有助于其他人,我的解决方案是:
从双重中选择虚拟 其中REGEXP_LIKE(dummy,REGEXP_REPLACE('X','([] \ ^。$ |()[* +?{},])','\\\ 1'))