2201B: invalid_regular_expression
PostgreSQL意味
正規表現操作 (~、~*、SIMILAR TO、regexp_matches、substring など) に与えたパターンが無効である。構文が誤っているため、PostgreSQL はパターンをコンパイルできなかった。
原因
括弧の不一致、無効な文字クラス、誤ったエスケープシーケンス、またはサポートされない構文を含む正規表現パターン。よくある原因は、特殊文字をエスケープせずにユーザー入力をそのままパターンとして使用することである。
対処方法
POSIX/ARE の構文に従って正規表現パターンを修正し、括弧、角括弧、エスケープシーケンスを確認する。ユーザー入力をパターンではなくリテラルテキストとして検索する場合: PostgreSQL には組込みの regexp_quote 関数がないため、regexp_replace で特殊文字の前にバックスラッシュを付けてエスケープするか、正規表現を使わず strpos()/position() や LIKE ... ESCAPE を使用する。別のツールでテストしてパターンを検証する。