Выбрать главу

жительное целое. лон (.) выделяет один произвольный

(кроме пустого) символ, а \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