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

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

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

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

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

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

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

Действие схоже с действием предыдущего символа с тем отличием, что впередистоящий метасимвол, символ или конструкция должен повторяться как минимум один раз. Рассмотрим предыдущий пример, но чтобы между буквами а была хотя бы одна цифра. Исходный набор строк: а 123а а 12а а123Ь
Продолжение ?>
Глава 3. Введение в регулярные выражения
Таблица 3.2 (продолжение)
Метасимвол
Описание
а1сЗЬ
Ы2а
ааа
Регулярное выражение:
[Аа]\с1+[Аа]
Результат:
а123а
а12а
1 п» 1 п, тах)
Иногда первых трех способов указания количества вхождений бывает недостаточно, гак как они не описывают количество детально. Решить проблему можно следующим способом. Для указания количества вхождений символа либо конструкции после них ставят открывающие фигурные скобки и пишут минимальное количество вхождений. Если это количество фиксированное (то есть должно быть не больше и не меньше вхождений символа), скобку закрывают; если должно быть не меньше указанного количества вхождений, ставят запятую и закрывают скобку; если существует предельное количество вхождений, то после запятой указывают его и закрывают скобку. Так, эквивалентом вопросительного знака янляется конструкция (0,1), знака звездочки — ( 0, ), знака плюса I 1, I.
Исходный набор строк:
а 123а
а12а
а123Ь
а1сЗЬ
М2а
ааа
Регулярное выражение:
[Аа]\й{2.)[Аа]
Результат:
а123а
а!2а

И грает большую роль при разборе- выражений. Его функция заключается в следующем. Обычно программы, которые работают с регулярными выражениями (в том числе и дгер), ищут сходные выражения в тексте, не определяя, является ли выражение словом и может ли конечное выражение располагаться н начале или конце слова. Однако часто требуется найти конкретное слово, что позволяет сделать данный метасимвол. Он ставится на месте, где слово должно начинаться или заканчиваться. Рассмотрим пример, в котором в наборе слов попытаемся найти те, которые начинаются на букву 5 и заканчиваются на букву г (для сравнения здесь
Группировка выражений
Метасимвол Описание
будут приведены примеры регулярного выражения с использованием метасимвола /Ь и без него). Исходный набор строк: starfish starless stellar ascender sacrifice scalar Регулярное выражение: [Ss]\w*[Rr] Результат: starfish starless stel1ar ascender sacrifice scalar Были выбраны слова, которые не соответствуют условиям Изменим регулярное выражение с метасимволом \Ь. Регулярное выражение: \b[Ss]\w*[RrJ\b Результат: stellar scalar
Группировка выражений
Особым приемом при составлении регулярных выражений является группировка нескольких его составляющих в одну единицу. Рассмотрим пример, в котором из текста требуется выделить обычный телефонный номер в его записи без кода города, когда номер разбит на три части, между которыми стоит дефис. Для этого подойдет такое регулярное выражение:
\(){1.3}Л(){1.3}-\<){1.3)
Это регулярное выражение можно сократить. В нем есть два идентичных блока текста подряд. В подобном случае выражение всегда можно укоротить, заключив
Глава 3. Введение в регулярные выражения
повторяющиеся фрагменты в круглые скобки и указав после них количество повторений. Это можно сделать любым способом. Один из вариантов — следующий:
<\d|l,3)->(2I\d|1, 3)
Теперь все выражение, заключенное в скобки, считается единым целым.
Внутри скобок также можно использовать прием, который позволяет выбирать между несколькими выражениями. Вот простой пример. Дано несколько чисел. Необходимо с помощью регулярного выражения выделить те, в которых есть цифра 7. после которой находится одна из цифр 1,3 или 5. Задачу легко решить с помощью конструкции с квадратными скобками, однако сделаем по-другому. Для выбора между несколькими выражениями требуется заключить их в круглые скобки и поставить между каждыми двумя выражениями символ вертикальной черты. Посмотрим, как таким способом решить поставленную задачу
Исходный набор строк:
123
17Н
176
755
713
873
Регулярное выражение:
7(1|3|5)
Результат:
755
713
Б73
Данную задачу было бы правильнее решить с помощью конструкции с квадратными скобками, при использовании которой регулярное выражение получилось бы короче. Следует отметить, что в скобках можно также выполнять операцию группировки выражений неограниченное по глубине количество раз, то есть выражение типа
(а I (Ы (cid) ) ) будет верным.
Использование зарезервированных символов
Использование зарезервированных символов
Как упоминалось выше, для программы, работающей с регулярными выражениями, некоторые символы имеют особый смысл. Это, например, косая черта, точка, круглая, фигурная и квадратная скобки, звездочка и т. д.
Однако не исключено, что в целевом выражении также могут быть эти символы, и их наличие нужно будет определить в регулярном. В данном случае эти символы нужно указать особым образом («защитить* их).
При этом перед нужным символом ставят косую черту, то есть, чтобы указать наличие в конечном тексте символа звездочки, в регулярном выражении на соответствующем месте следует написать \ *.
Рассмотрим пример.
С помощью регулярного выражения требуется найти строки, в которых между некоторыми буквами или цифрами в круглые или квадратные скобки заключено несколько цифр.
Предыдущая << 1 .. 14 15 16 17 18 19 < 20 > 21 22 23 24 25 26 .. 116 >> Следующая