Справочник по функциям

REGEXP_LIKE

Проверяет, есть ли в строке совпадение с регулярным выражением.

PostgreSQL 17.9
REGEXP_LIKE(string, pattern[, flags])
  • [ ]необязательная часть
string
Строка, в которой выполняется поиск
text
pattern
Регулярное выражение
text
flags
Флаги, например i — без учёта регистра
textНеобязательный
bceimnpqstwx

Возвращаемое значение

true или false; NULL, если string или pattern равны NULL

Примеры

С учётом регистра и без

PostgreSQL 17.9
SELECT REGEXP_LIKE('PostgreSQL', 'sql') AS case_sensitive,
	REGEXP_LIKE('PostgreSQL', 'sql', 'i') AS ignore_case;
case_sensitiveignore_case
falsetrue

Пользователи с почтой Gmail или Hotmail

PostgreSQL 17.9
SELECT name,
	email
FROM Users
WHERE REGEXP_LIKE(email, '@(gmail|hotmail)\.com$')
LIMIT 5;
nameemail
Bruce Willisbarjam@hotmail.com
Jennifer Lopezbarjam@hotmail.com
Harrison Fordkostas@hotmail.com
Michael Douglastimtroyr@hotmail.com
Catherine Zeta-Jonesflakeg@hotmail.com

Подробности

Функция появилась в PostgreSQL 15. Она делает то же, что оператор ~ (и ~* без учёта регистра). Совпадение ищется в любом месте строки: чтобы проверить строку целиком, добавьте в шаблон ^ и $.

Смотрите также