Oracle Regexp Like
Oracle REGEXP_LIKE функция используется для проверки соответствия регулярному выражению в строке.
Синтаксис функции:
REGEXP_LIKE (сравниваемая_строка, регулярное_выражение, начальная_позиция, опции_сопоставления)
- сравниваемая_строка: строка, которую мы хотим проверить на соответствие регулярному выражению.
- регулярное_выражение: регулярное выражение, с которым мы хотим сравнить строку.
- начальная_позиция (необязательно): позиция, с которой начинается поиск соответствия в строке. По умолчанию - 1.
- опции_сопоставления (необязательно): список опций или флагов, которые изменяют поведение поиска. Эти флаги перечислены ниже.
REGEXP_LIKE возвращает значение TRUE, если сопоставление найдено, и FALSE в противном случае.
Примеры:
1) Проверка, содержит ли строка цифры:
SELECT *
FROM table_name
WHERE REGEXP_LIKE(column_name, '[0-9]');
2) Проверка, начинается ли строка со слова "Hello":
SELECT *
FROM table_name
WHERE REGEXP_LIKE(column_name, '^Hello');
3) Проверка, заканчивается ли строка на число:
SELECT *
FROM table_name
WHERE REGEXP_LIKE(column_name, '[0-9]$');
4) Проверка, содержит ли строка почтовый индекс в формате "NNNNN" или "NNNNN-NNNN":
SELECT *
FROM table_name
WHERE REGEXP_LIKE(column_name, '^[0-9]{5}(-[0-9]{4})?$');
5) Проверка, является ли строка корректным email-адресом:
SELECT *
FROM table_name
WHERE REGEXP_LIKE(column_name, '^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$');
Это лишь примеры возможного использования функции REGEXP_LIKE. Регулярные выражения в Oracle мощны и гибки. Вам может потребоваться более подробно изучить регулярные выражения для более сложных проверок.