哪位懂正则表达式的高手能解释下以下sql的返回结果:
SELECT regexp_replace('123[456]789', '[^\]]', 'X')
FROM dual
返回结果是:123[45X789
原意是想将除了]的字母都替换成X,即希望的返回结果是XXXXXXX]XXX。
后来试了以下,用以下sql可以返回想要的结果:
SELECT regexp_replace('123[456]789', '[^]]', 'X')
FROM dual
但我很奇怪,不是说]是正则表达式里的特殊字符吗?用的是否是需要转义的啊,求解释。
------解决方案--------------------
参考
调皮的前后中括号([])正则匹配