Продолжается подписка на наши издания! Вы не забыли подписаться?

Регулярные выражения в Oracle 10g

Автор: Алиса Ришет
Oracle Magazine

Что такое регулярное выражение?
Использование регулярных выражений в Oracle Database 10g
Примеры регулярных выражений
Оператор REGEXP_LIKE
Функция REGEXP_INSTR
Более сложные шаблоны
Функция REGEXP_SUBSTR
Функция REGEXP_REPLACE
Ссылки
Дополнительный параметр сопоставления
Практические приложения регулярных выражений
Сравнение регулярных выражений с существующей функциональностью
Полезное добавление к инструментарию

Появившаяся в Oracle Database 10g возможность значительно увеличивает возможности поиска символьных данных и манипулирования ими. Эта возможность, регулярные выражения, представляет собой набор выражений для описания образца текста. Она давно имеется во многих языках программирования и множестве утилит для UNIX.

Регулярные выражения в Oracle реализованы в виде SQL-функций и оператора выражения WHERE. Тем, кто еще ничего не знает о регулярных выражениях, эта статья может дать общее понятие об этой новой и весьма мощной, но пока кажущейся непонятной, возможности. Читатели, которые уже познакомились с регулярными выражениями, могут пополнить знания о том, как применить эту функциональность в контексте языка Oracle SQL.

Что такое регулярное выражение?

Регулярное выражение содержит один и более символов и/или метасимволов. В самом простом виде регулярное выражение может состоять только из символов, например, регулярное выражение cat. Оно читается как буква c, за которой следует буква a и t, и этому шаблону соответствуют такие строки, как cat, location и catalog. Метасимволы обеспечивают алгоритмы обработки в Oracle символов, из которых состоит регулярное выражение. Выяснив значение различных метасимволов, вы увидите, как удобны регулярные выражения для поиска и замены каких-либо текстовых данных.

Проверка данных, поиск дубликатов, обнаружение лишних пробелов или разбор строки – только некоторые из множества примеров использования регулярных выражений. Их можно применять для проверки формата телефонного номера, zip-кода, email-адресов, номеров социального обеспечения, IP-адресов, имен файлов и директорий и так далее. Кроме того, можно искать комбинации, например, HTML-тегов, чисел, дат, и т.д, которые соответствуют какому-либо шаблону в тексте, и заменять их другим набором символов.

Использование регулярных выражений в Oracle Database 10g

Чтобы воспользоваться возможностями регулярных выражений, можно применить функции REGEXP_INSTR, REGEXP_SUBSTR и REGEXP_REPLACE и новый оператор Oracle SQL – REGEXP_LIKE. Вы увидите, как эта новая функциональность поддерживает существующий оператор LIKE и функции INSTR, SUBSTR и REPLACE. Они действительно похожи на существующие оператор и функции, однако теперь предоставляются мощные возможности сопоставления с шаблоном. Искомые данные могут быть простой строкой или текстом большого объема, хранимым в символьном столбце базы данных. Регулярные выражения позволяют искать, заменять и проверять данные способом, о котором ранее и не мечтали, с высокой степенью гибкости.

 

.............................

 

Регулярные выражения очень полезны, так как помогают решить сложные задачи. Некоторые возможности регулярных выражений трудно воспроизвести с помощью традиционных SQL-функций. Когда будет изучено создание основных конструкций этого несколько сложного языка, регулярные выражения станут необходимой частью инструмента в контексте не только SQL, но и других языков программирования. Хотя тестирование и допущение ошибок иногда необходимо для получения индивидуальных навыков написания шаблонов, элегантность и мощность регулярных выражений бесспорна.

 
"С полным содержанием данной статьи можно ознакомиться в печатной версии журнала"

Copyright © 1994-2016 ООО "К-Пресс"