2201B: invalid_regular_expression
PostgreSQL含义
传给正则表达式操作(~、~*、SIMILAR TO、regexp_matches、substring 等)的模式无效。由于语法错误,PostgreSQL 无法编译该模式。
原因
正则模式中括号不配对、字符类无效、转义序列错误或使用了不支持的构造。常见原因是直接将用户输入用作模式,而没有转义其中的特殊字符。
解决方法
按照 POSIX/ARE 语法修正正则模式;检查圆括号、方括号和转义序列。如果要将用户输入作为字面文本而非模式来搜索:PostgreSQL 没有内置的 regexp_quote 函数,因此用 regexp_replace 在特殊字符前加反斜杠进行转义,或完全不用正则,改用 strpos()/position() 或 LIKE ... ESCAPE。在单独的工具中测试以验证模式。