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

REGEXP_COUNT

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

PostgreSQL 17.5
REGEXP_COUNT(string, pattern[, start[, flags]])

Параметры

stringtext
Строка, в которой выполняется поиск
patterntext
Регулярное выражение
startintegerнеобязательный
Позиция начала поиска, по умолчанию 1
flagstextнеобязательный
Флаги, например i — без учёта регистра

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

Целое число (integer); 0, если совпадений нет

Примеры

Числа и цифры в строке

PostgreSQL 17.5
SELECT REGEXP_COUNT('a1b22c333', '[0-9]+') AS numbers,
	REGEXP_COUNT('a1b22c333', '[0-9]') AS digits;
numbersdigits
36

Гласные в именах

PostgreSQL 17.5
SELECT member_name,
	REGEXP_COUNT(member_name, '[aeiou]', 1, 'i') AS vowels
FROM FamilyMembers;
member_namevowels
Headley Quincey6
Flavia Quincey6
Andie Quincey6
Lela Quincey5
Annie Quincey6
Ernest Forrest4
Constance Forrest5
Wednesday Addams5

Подробности

Функция появилась в PostgreSQL 15. Совпадения не пересекаются: в строке 'aaa' шаблон 'aa' найдётся один раз.

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