Скачать презентацию Регулярные выражения в pl sql Регулярные выражения Это Скачать презентацию Регулярные выражения в pl sql Регулярные выражения Это

regul.ppt

  • Количество слайдов: 13

Регулярные выражения в pl/sql Регулярные выражения в pl/sql

Регулярные выражения Это язык описания текстовых шаблонов (так же называемых образцами и масками). Текстовые Регулярные выражения Это язык описания текстовых шаблонов (так же называемых образцами и масками). Текстовые шаблоны используются: § Для проверки соответствия некоторого текста шаблону. § Для поиска текста, соответствующего данному шаблону. § Для замены текста, соответствующего данному шаблону, другим текстом.

Регулярные выражения Простейший пример использования регулярного выражения: § SELECT * § FROM EMPLOYEE § Регулярные выражения Простейший пример использования регулярного выражения: § SELECT * § FROM EMPLOYEE § WHERE NAME LIKE `%VASYA%` Регулярному выражению ‘%VASYA%’ соответствуют строки: § ‘VASYA`, § `TRATATAVASYA` § `22 VASYA 77` и т. д.

Синтаксис регулярных выражений Регулярное выражение состоит из символов и метасимволов. В самом простом виде Синтаксис регулярных выражений Регулярное выражение состоит из символов и метасимволов. В самом простом виде регулярное выражение состоит только из символов. Регулярному выражению ‘вася’ соответсвуют строки: § ‘котвася’; § ‘васячеловек’; § ‘замучилвасякота’.

Синтаксис регулярных выражений Метасимволы в регулярных выражениях используются для описания других символов. Например, метасимвол Синтаксис регулярных выражений Метасимволы в регулярных выражениях используются для описания других символов. Например, метасимвол `. ` в регулярном выражении соответствует любому символу (кроме символа перехода на новую строку) Регулярному выражению `a. b` соответствуют строки `asb`, `wafbl`, `aa. Pbb` и др. Если требуется, чтобы строка начиналась и заканчивалась определенными символами, то используются символы привязки к началу и концу строки - `^` и `$`. Так шаблону `^a. b$` соответствуют строки `a. Gb`, `a. Sb`, но не соответствуют `fadb`, ’albg’

Синтаксис регулярных выражений. Операторы повтора. Чтобы указать, что строка должна содержать несколько одинаковых символов Синтаксис регулярных выражений. Операторы повтора. Чтобы указать, что строка должна содержать несколько одинаковых символов или комбинаций символов, используются операторы повтора. Например, оператор `*` говорит, что комбинация символов должна повторяться 0 или более раз. Так шаблону `v(asy)*a` соответствуют строки ‘va’, ‘vasya’, vasyasya, `manva` и т. д

Синтаксис регулярных выражений. Операторы повтора. Оператор Описание повтора * Встречается 0 и более раз Синтаксис регулярных выражений. Операторы повтора. Оператор Описание повтора * Встречается 0 и более раз ? Встречается 0 или 1 раз + Встречается 1 и более раз {m} Встречается ровно m раз {m, } Встречается по крайней мере m раз {m, n} Встречается по крайней мере m раз, но не более n раз

Синтаксис регулярных выражений. Списки символов. Используют тогда, когда необходимо указать, что строка должна содержать Синтаксис регулярных выражений. Списки символов. Используют тогда, когда необходимо указать, что строка должна содержать элементы из определенного списка. Синтаксис: `[символы]`. Например, шаблону `a[bcd]e` соответствуют строки `abe`, `ace`, `ade`, но не соответствуют `ae` или `abce`. В списках можно задать диапазон символов: например, шаблону ‘a[b-m]d’ соответствуют строки `add` и `amd`. Для того, чтобы указать, что строка не должна содержать элементы из данного списка, используют символ `^`. Например, шаблону `a[^abc]n` соответствуют строки ‘akn’ или ‘a 7 n’.

Синтаксис регулярных выражений. Списки символов. В списках могут использоваться символы из POSIX класса Класс Синтаксис регулярных выражений. Списки символов. В списках могут использоваться символы из POSIX класса Класс символов Описание [: alpha: ] Буквы [: lower: ] Буквы в нижнем регистре [: upper: ] Буквы в верхнем регистре [: digit: ] Цифры [: alnum: ] Буквы и цифры [: space: ] Пробелы (не печатаемые символы), такие как перевод каретки, новая строка, вертикальная табуляция и подача страницы [: punct: ] Знаки препинания [: cntrl: ] Управляющие символы (не печатаемые) [: print: ] Печатаемые символы

Пример использования символов POSIX класса Составить регулярно выражение, которому соответствуют строки, начинающиеся на две Пример использования символов POSIX класса Составить регулярно выражение, которому соответствуют строки, начинающиеся на две буквы в верхнем и две буквы в нижнем регистре. ^[[: upper: ]]{2}[[: lower: ]]{2} Данному шаблону соответствуют строки § `ВАся`, § `ВАся. Ест. Квасю`, § `ВАсилий`и др.

Функции для работы с регулярным выражениями. Regexp_like. Проверяет, соответствует ли строка некоторому регулярному выражению Функции для работы с регулярным выражениями. Regexp_like. Проверяет, соответствует ли строка некоторому регулярному выражению bool regexp_like(`строка’, `регулярное выражение`) Пример: получить список работников, чьи имена начинаются на заглавную букву `Г`, а заканчиваются на `адя` § select * § from employee § where regexp_like(name, `^Г[[: alpha]]*адя$`)

Функции для работы с регулярным выражениями. Regexp_substr. Возвращает часть строки, соответствующую заданному регулярному выражению Функции для работы с регулярным выражениями. Regexp_substr. Возвращает часть строки, соответствующую заданному регулярному выражению varchar 2 regexp_substr(‘исходная строка’, ‘регулярное выражение’) Пример: необходимо получить первую букву в имени некоторого сотрудника § select regexp_substr(name, ’^[[: alpha]]$’) first_word § from employee § where id=777

Функции для работы с регулярным выражениями. Regexp_replace. Находит в строке подстроку, соответствующую определенному регулярному Функции для работы с регулярным выражениями. Regexp_replace. Находит в строке подстроку, соответствующую определенному регулярному выражению, и заменяет ее на другую подстроку. varchar 2 regexp_replace(‘исходная строка’, ’регулярное выражение ’, ’подстрока замены’) Пример: имеется строка `vasya`. Необходимо получить строку без лишних пробелов § select regexp_replace(`vasya § from dual vasya`, `( ){2, }`, ` `)