DBAtlas · Атлас эксплуатации баз данных

2201B: invalid_regular_expression

PostgreSQL

Что это значит?

Шаблон, переданный операции с регулярным выражением (~, ~*, SIMILAR TO, regexp_matches, substring и т. д.), недопустим. PostgreSQL не смог скомпилировать шаблон, так как его синтаксис неверен.

Почему возникает?

Шаблон regex с несбалансированными скобками, недопустимыми классами символов, неверными escape-последовательностями или неподдерживаемой конструкцией. Частая причина — использование пользовательского ввода непосредственно в качестве шаблона без экранирования специальных символов.

Как исправить

Исправьте шаблон regex согласно синтаксису POSIX/ARE; проверьте круглые и квадратные скобки и escape-последовательности. Если вы ищете пользовательский ввод как буквальный текст, а не как шаблон: в PostgreSQL нет встроенной функции regexp_quote, поэтому экранируйте специальные символы, добавляя перед ними обратную косую черту через regexp_replace, либо вовсе откажитесь от regex и используйте strpos()/position() или LIKE ... ESCAPE. Проверьте шаблон, протестировав его в отдельном инструменте.

Открыть в DBAtlas →

Ещё по этой СУБД