жительное целое. лон (.) выделяет один произвольный
(кроме пустого) символ, а \1
снова повторяет его, тем самым
требуя совпадения двух идущих
подряд одинаковых символов.
В базе данных Oracle 10g Release 2 появилось некоторое количество
метасимволов Perl-вида, которые перечислены в таблице 4.6.
В таблице 4.7 перечислены функции для регулярных выражений. Функции
регулярных выражений появились в базе данных Oracle 10g, а в версии
l l g были добавлены новые функции, которые также перечислены в
таблице.
Таблица 4.6. Метасимволы Ре[1-вида
Метасимволы Значение
\d Цифровой символ
\D Нецифровой символ
\w Буквенный символ
\W Не буквенный символ
\S Символ пробела
\s Не символ пробела
\A Ищет совпадение только в начале строки или перед символом новой строки
в конце строки
\ z Ищет совпадение только в конце строки
*? Соответствует элементу предыдущего шаблона 0 или более раз
+? Соответствует элементу предыдущего шаблона 1 или более раз
?? Соответствует элементу предыдущего шаблона 0 или 1 раз
{n> Соответствует элементу предыдущего шаблона точно п раз
{П, } Соответствует элементу предыдущего шаблона не менее п раз
{n. m> Соответствует элементу предыдущего шаблона не менее п, но не более m раз
Таблица 4.7. Функции с регулярными выражениями
Функция Описание
REGEXP_LIKE(x, шаблон Выполняет поиск в х регулярного выражения, определённого в
[, условия_совпадения]) параметре шаблон. Можно изменить применяемые по умолчанию
условия совпадения, если задать соответствующий необязательный
параметр (условия_совпадения), который может быть
установлен одним из следующих способов:
Использование простых функций 119
Таблица 4.7. Функции с регулярными выражениями (продолжение)
Функция Описание
с - означает, что при поиске совпадений учитывается регистр
(используется по умолчанию)
Т - означает, что при поиске совпадений регистр не учитывается
‘п’ - означает, что можно использовать оператор совпадения
с любым символом
‘т ’ означает, что х трактуется как строка, состоящая из нескольких
строк
REGEXP_INSTR(x, шаблон
[, начало [, номер_
вхождения [, условия_
возврата [, условия_сов-
падения[, условия_под-
выражений ]]]]])
REGEXP_REPLACE(x,
шаблон [, строка_замены
[, начало [, номер_вхож-
дения [, условия_совпа-
дения ]]]])
REGEXP_SUBSTR(x, шаблон
[, начало [,номер_
вхождения [, условия_
совпадения!, условия_
подвыражений ]]]])
Ищет вхождение шаблона в строку х и возвращает адрес этого
вхождения. Как необязательные параметры можно задать:
■ начало - позицию, начиная с которой следует вести поиск.
■ номер_вхождения - указывает, какое по счету вхождение
шаблона должно быть возвращено. По умолчанию этот параметр
равен 1 (первое вхождение).
■ условия_возврата указывает, какое целое число должно
-быть возвращено. Значение 0 означает, что возвращаемое
целое число указывает на позицию первого символа вхождения
строки шаблон в х; значение 1 указывает, что будет возвращен
адрес первого символа строки х, следующего сразу
за отыскиваемым вхождением строки шаблон.
■ условия_совпадения - для изменения применяемых по
умолчанию условий совпадения. Работает также, как показано
для REGEXP_LIKE().
■ условия_подвыражений (появилось в Oracle 11 g) работает
следующим образом: для шаблона с подвыражениями усло-
вия_подвыражений является неотрицательным целым числом
от 0 до 9, показывающим, какое подвыражение в шаблон
является целью функции. Например, рассмотрим следующее
выражение: 0123(((abc)(de)f)ghi)45(678). Это выражение
имеет пять подвыражений в следующем порядке:
’’abcdefghi”, “abcdef”, “abc", “de”, “678”.
Если условия_подвыражений равно 0, то возвращается позиция
для шаблон. Если шаблон не имеет правильного числа
подвыражений, то функция возвращает 0. Значение усло-
вия_подвыражений, равное null, возвращает null. По
умолчанию значение условия_подвыражений равно 0.
Ищет вхождения шаблона в строку х и заменяет их на строку_за-
мены. Остальные параметры имеют то же значение, что и в предыдущем
примере.
Возвращает подстроку строки х, соответствующую шаблону, которая
начинается с позиции, заданной параметром начало. Остальные
параметры имеют то же значение, что и в предыдущем
примере. Параметр условия_подвыражений (появился в Oracle