好的,这个问题可能看起来像一个重复的问题,但请记住,Postgres(9.5)不支持负面的回溯,所以这样的事情是行不通的
SELECT 'blah?' ~ '(?<!\\)[\?\$\&\#\?\@]'
所以我想要一个正则表达式来表示“使用未转义的特殊字符查找字符串”,例如如果[]列表中的任何特殊字符都没有用\进行转义,则在Postgres 9.5上使用〜运算符将其返回false,因此上述应返回False。
“等等?”错误
'等等\'是
'bl?ah'错误
'不是'错误
'aren \'t'true
'\'stuff'true
“我们为什么不回家?\;”错误
'我们为什么不回家\?\;'是
另一个问题是如何在正则表达式匹配字符串中包含'(或\')字符,以便在不转义的情况下也可以正确识别它。
特殊字符的完整列表比上面的示例大-常规的31个字符(所有大括号,(半)分号,撇号,反引号等)
我将其放在此处,而不是在dba.stackexchange.com中,因为与PostgreSQL相比,这更是一个Regex问题。