Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Linux all на 100% - Маслаков В.

Маслаков В. Linux all на 100% — Питер , 2009. — 331 c.
ISBN 978-5-388-00757-5
Скачать (прямая ссылка): linuxna1002009.pdf
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 116 >> Следующая

Исходный набор строк:
аЬ(123)(с1
а[12М
а123]с1
а(12с!
1[123](]
Регулярное выражение:
Результат:
аЬ(123)с<1
а[12]с!
1[123]с)
Это регулярное выражение несколько нелогично, так как позволяет сделать открывающей круглую скобку, а закрывающей - квадратную, и наоборот. Попробуйте придумать свое, более универсальное регулярное выражение, которое исправило бы ЭТО! недостаток.
Глава 3. Введение в регулярные выражения
Примеры использования регулярных выражений
Рассмотрим несколько примеров на основе изученного материала. В первом примере попытаемся выделить из текста ІР-адреса Следует напомнить, что правильным ІР-адресом являются четыре числа, в каждом из которых содержится не более трех цифр, причем эти числа разделены точками Регулярное выражение будет таким:
\<3{1.3}\.\(]{1.3}\.\(!{1.3}\ \<3{1.3>\
В нем содержится три одинаковых блока, стоящих один за другим Их можно сгруппировать в один блок следующим образом:
(\с!{1,3}\. ){3}\с1{ 1.3)
Однако это выражение также нельзя назвать верным ни одно из чисел, входящих в состав 1Р-адреса, не может быть больше 255. По этой причине составление регулярных выражений не так просто. Следует разбират ь каждое число посимвольно. Рассмотрим возможные варианты и соответствующие им регулярные выражения (табл. 3.3).
Таблица з-з- Перебор регулярных выражений для определения ІР-адреса
Описание Регулярное выражение
Один или два символа цифр В таком случае эти цифры могут быть любыми VI (1.2)
Три символа цифр, причем первый нуль или единица. В данном случае две другие цифры могут быть нрои.з вольными (0|1) ,с1{2)
Три символа цифр, причем первый двойка, а второй меньше пяти. В этом случае третья цифра может Сыть любой 2|<М)\г1
Три символа цифр, причем второй пятерка. Третья цифра должна быть меньше или равна пяти 25[0-5|
Осталось сгруппировать выражения, приведенные в таблице, в одно, которое позволило бы выделить из текста число, меньшее либо равное 255:
((\й{1.2})|(Ю|1)\(1{2))|(2[0-4]\а)|(ЙГ0-5])>
В итоге получаем регулярное выражение для поиска 1Р адреса:
(((\<1{1.2})|((0|1)\(1{2})|12[0-4]\{})|(25(0-5]))\ ){31 Ц\(1{1.2}) | ((0|1)\<1{2}) | (2[0-4]\с1) |(25[0-5]))
Примеры использования регулярных выражений
Рассмотрим работу этого регулярного выражения на примере.
Исходный набор строк:
127 О И 1 255 255.255 255 12.34 56 123.256 О О 1.23 094 255
Регулярное выражение:
(К Vd{ 1.2}) |К011 )\с1г{2}) |(2[0-4]\d)Ц2bf0-5 )))\ )(3}\d(1.3|
Результат:
127.0.0 1
255.255.255.255
1.23.099.255
Рассмотрим знаменитый пример, связанный с выделением из текста электронных почтовых адресов (e-mail). Для начала определим все возможные варианты, которые должны быть отражены в регулярном выражении. Существует мнение, что не так сложно учесть все варианты, как не допустить, чтобы регулярное выражение соответствовало неправильному конечному тексту. Определим все возможные вариан гы.
Самым обычным считается адрес типа. username@foobarwebsite.com
Может показаться, что для выделения адреса е mail будет достаточно такого регулярного выражения:
\w+@\w+\.\w+
Этого хватит, чтобы распознать вышеуказанный формат адреса, но данное регулярное выражение не универсально. Следующий адрес корректен, однако вышеуказанное регулярное выражение не сможет распознать его:
my.user.name@sub.foobar.website.com.
В качест ве тренировки подумайте, каким будет регулярное выражение. Ответ прост: чтобы регулярное выражение в данном случае было универсальным следует учесть
Глава 3. Введение в регулярные выражения
возможное наличие точек в имени пользователя и домена. Решение будет следующим:
(\w+\ . )*\w*@(\W-A )t\W*-
Это не совсем верный вариант. В имени домена первого уровня могут быть только буквы, но не цифры или другие символы. В связи с этим можно изменить регулярное выражение:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+
Рассмотрим работу регулярного выражения на примере.
Исходный набор строк:
my@email .com another.my?email com not.my@en«il address.com wrong.address.com another wrong address com
Регулярное выражение:
(\w+\ )*\w+@(\w+\ )+[A-Za z]+
Результат:
my@emai1.com another.my?emai 1.com not.my@ema i1.address.com
Закончим еще одним классическим примером распознаванием адреса страницы в Интернете. Определим критерии, по которым будем искать адрес:
? в начале выражения может быть http://, https:// или www., причем последнее выражение, если оно существует, должно стоять позже двух первых, a http:// и https:// не могут присутствовать одновременно;
? составными частями выражения могут быть буквы, цифры и знаки подчеркивания, причем эти составные части разделяются косыми чертами;
О в конце выражения может стоять косая черта или имя файла (выделяем только адрес страницы и не учитываем случай, когда передаются какие-либо параметры).
На основе этих критериев попытаемся составить регулярное выражение. Разобьем его на составляющие и посмотрим, что описывает каждая его часть (табл. 3.4).
Примеры использования регулярных выражений
Таблица 3.9. Часги, составляющие адрес страницы
Выражение Описание
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 116 >> Следующая