我对在 Redshift 中使用 POSIX 正则表达式很陌生。老实说,我认为这种模式必须兼容。
[^A-Za-z0-9\\.\\,-]+
但是,正如我尝试过这样的查询
SELECT * FROM my_table WHERE string_column ~ '[^A-Za-z0-9\\.\\,-]+';
它给了我一个与我喜欢的不匹配的结果,并且似乎将插入符号视为字符文字。我也试过用[^[:alnum:]]
没用。发生这种情况的原因可能是什么?我是否输入了错误,或者这是 Redshift 或 JDBC 驱动程序中的限制?
我目前正在通过 JetBrains DataGrip(最新版本)运行查询,并使用最新的 Amazon Redshift JDBC 驱动程序运行它。
我如何使用这种模式的问题是我如何错误地尝试在字符之后添加
-
字符。基本上,Redshift 确实支持使用插入符号进行模式列表匹配否定。所以这不应该引起任何问题,但是
可能会导致问题,因为它可能会假设进行范围查找而不是同时查找
-
空格字符。