11 g) работает точно также, как в случае REGEXP_INSTR().
120 Глава 4
Таблица 4.7. Функции с регулярными выражениями (окончание)
Функция_______________ Описание___________________________ _____________________
REGEXP_COUNT(x, шаб- Новая функция в Oracle 11 д. Ищет шаблон в х и возвращает колон
[, начало [, условия_ личество найденных вхождений шаблона в х. Дополнительно
совпадения]]) можно указать:
■ начало позиция, с которой нужно начинать поиск. По умолчанию
это 1, то есть первый символ х.
■ условия_совпадения чтобы изменить параметры совпадения,
используемые по умолчанию. Работает точно также, как показано
для REGEXP_LIKE().
В следующих разделах вы узнаете больше о функциях регулярных выражений.
R E G E X P _ L IK E ( )
Функция REGEXP_LIKE(x, шаблон [, условия_совпадения]) используется для
поиска в строке х регулярных выражений, заданных шаблоном шаблон.
Можно задать дополнительный параметр условия_совпадения, который
может принимать следующие значения:
■ 'с' - означает, что при поиске совпадений учитывается регистр (используется
по умолчанию),
■ 'Г - означает, что при поиске совпадений регистр не учитывается,
■ 'п' - означает, что можно использовать оператор совпадения с любым
символом,
■ 'т ' означает, что х трактуется как строка, состоящая из нескольких
строк.
В следующем примере с помощью функции REGEXP_LIKE() отбираются
покупатели, дата рождения которых находится в диапазоне от 1965 до
1968 года:
□ SELECT customer_id, first_name, last_name, dob
FROM customers
WHERE REGEXP_LIKE(TO_CHAR(dob, 1YYYY’), '“196(5-8]$’);
CUSTIOMER_ID FIRST_NAME LAST_NAME DOB
1 John Brown 01-JAN-65
2 Cynthia Green 05-FEB-68
В следующем примере производится выборка покупателей, имя которых
начинается с буквJ илиф Придаваемое функции REGEXP_LIKE() регулярное
выражение имеет вид Aj , а параметр условия_совпадения - значение 1,
что означает совпадение независимо от регистра, в котором набран проверяемый
символ, т.е. критерию совпадения будут удовлетворять стоящие
в начале строки символы J или j:
П SELECT customsr_id, first_name, last_name, dob
FROM customers
WHERE REGEXP_LIKE(first_name, '“j’, * i’):
Использование простых функций 121
CUSTIOMER_ID FIRST_NAME LAST_NAME DOB
1 John Brown 01-JAN-65
R E G E X P IN S T R ()
Функция REGEXP_INSTR(x, шаблон [, начало [, номер_вхождения [, усло-
вия_возврата [, условия_совпадения ] ] ] ] ) используется для поиска в х шаблона;
REGEXP_INSTR() возвращает позицию, в которой встречается указанный
при ее вызове шаблон. Позиции в строке нумеруются, начиная с 1.
В следующем примере с помощью функции REGEXP_INSTR() возвращается
позиция, удовлетворяющая регулярному выражению 1 [ [: alpha: ] ] { 4}:
□ SELECT
REGEXP_INSTR( ‘ But, soft! What light through yonder window breaks?’,
‘1[[:alpha:]]{4} ’) AS result
FROM dual;
RESULT
17
Обратите внимание, что возвращается число 17, соответствующее позиции
буквы 1 слова light в строке поиска.
В следующем примере с помощью функции REGEXP_INSTR() возвращается
позиция второго вхождения текста, соответствующего регулярному выражению
s[ [:alpha:] ] {3 }, если вести поиск с позиции 1 входной строки:
□ SELECT
REGEXP_INSTR(‘ But, soft! What light through yonder window softly
breaks?’,
‘ s[[:alpha:]]{3}') AS result
FROM dual;
RESULT
45
В следующем примере возвращается позиция второго вхождения буквы
о, если начать поиск с позиции 10 входной строки:
□ SELECT
REGEXP_INSTR(‘ But, soft! What light through yonder window breaks?’,
’o’, 10, 2) AS result
FROM dual;
RESULT
32
R E G E X P _ R E P L A C E ()
Функция REGEXP_REPLACE(x, шаблон [, строка_замены [, начало [,номер_
вхождения [, условия_совпадения ] ] ] ] ) используется для поиска вхождений
шаблона в строку х и заменяет их на строка_замены.
122 Глава 4
В следующем примере с помощью функции REGEXP_REPLACE() подстрока,
удовлетворяющая регулярному выражению l[[:a lp h a :]]{4 }, заменяется
строкой ‘sound’ :
□ SELECT REGEXP_REPLACE('But, soft! What light through yonder window
breaks?',
‘1[[:alpha:]]{4}', ‘sound’) AS result
FROM dual;
RESULT
But, s o ft ! What sound through yonder window breaks?
Обратите внимание: в выведенном тексте слово light заменено словом
sound.
R EG EX P _SU B S TR ()
Функция REGEXP_SUBSTR(x, шаблон [, начало [,номер_вхождения [,условия_
совпадения ] ] ] ) используется для получения подстроки строки х, соответствующей
шаблону, которая начинается с позиции, указанной параметром
начало. - -
В следующем примере с помощью функции REGEXP_SUBSTR() возвращается
подстрока, удовлетворяющая регулярному выражению l[[:a lph a :]]{4 }:
□ SELECT
REGEXP_SUBSTR(‘But, soft! What light through yonder window breaks?’,
‘ ICC:alpha:]]{4}', ‘sound’) AS result
FROM dual;
RESUL
lig h t
R E G E X P _C O U N T ()