Фридл
Дж.. Регулярные выражения.
- Почему я
написал эту книгу
-
Для кого
написана эта книга
-
Как читать
эту книгу
-
Книга как
повесть
-
Книга как
справочник
-
Структура
книги
-
Вводная часть
-
Подробное
описание
-
Конкретные
программы
-
Условные
обозначения
-
Задачи
-
Личные
комментарии и благодарности
-
Мои
предшественники
-
Прочие
благодарности
-
Перспективы
-
От
издательства
- Решение
реальных задач
-
Регулярные
выражения как язык
-
Аналогия с
файловыми шаблонами
-
Аналогия с
языками
-
Регулярные
выражения как особый склад ума
-
Поиск в
текстовых файлах: egrep
-
Метасимволы
egrep
-
Начало и
конец строки
-
Символьные
классы
-
Один
произвольный символ
-
Выбор
-
Границы слов
-
В двух словах
-
Необязательные
элементы
-
Другие
квантификаторы: повторение
-
Игнорирование
различий в регистре символов
-
Круглые
скобки и обратные ссылки
-
Экранирование
-
Новые
горизонты
-
Языковая
диверсификация
-
Смысл
регулярного выражения
-
Дополнительные
примеры
-
Терминология
регулярных выражений
-
Пути к
совершенствованию
-
Итоги
-
Личные
заметки
- О
примерах
-
Краткий
вводный курс Perl
-
Проверка
текста с использованием регулярных выражений
-
Переходим к
реальным примерам
-
Побочные
эффекты успешных совпадений
-
Инвертированный
поиск
-
Взаимодействие
регулярных выражений с логикой программы
-
Лирическое
отступление
-
Модификация
текста с использованием регулярных выражений
-
Автоматизация
редактирования
-
Маленькая
почтовая утилита
-
Задача с
повторяющимися словами
- Для чего
написана эта глава
-
История
регулярных выражений
-
grep как
мировоззрение
-
Все течет,
все изменяется
-
С первого
взгляда
-
POSIX
-
Основные
операции с регулярными выражениями
-
Идентификация
регулярных выражений
-
Операции с
совпавшим текстом
-
Другие
примеры
-
Итоги
-
Механизмы и
внешняя отделка
-
Отделка и
внешний вид
-
Двигатели и
механика
-
Стандартные
метасимволы
-
Сокращенные
обозначения символов
-
Строки как
регулярные выражения
-
Сокращенные
обозначения классов, символ "точка" и символьные классы
-
Якорные
метасимволы
-
Группировка и
сохранение текста
-
Квантификаторы
-
Конструкция
выбора
-
Путеводитель
по серьезным главам
-
Информация о
конкретных программах
- Запустить
двигатели!
-
Два вида
двигателей
-
Новые
стандарты
-
Типы
механизмов регулярных выражений
-
С позиций
избыточности
-
Основы поиска
совпадений
-
О примерах
-
Правило 1:
Более раннее совпадение выигрывает
-
Смещение
текущей позиции поиска
-
Компоненты и
части двигателя
-
Правило 2:
Квантификаторы работают максимально
-
Механизмы
регулярных выражений
-
НКА:
механизм, управляемый регулярным выражением
-
ДКА:
механизм, управляемый текстом
-
Великая Тайна
-
Возврат
-
Крошечная
аналогия
-
Два важных
замечания
-
Сохраненные
состояния
-
Возврат и
максимализм
-
Подробнее о
максимализме
-
Проблемы
максимализма
-
Многосимвольные
"кавычки"
-
Минимализм?
-
Максимализм
всегда выбирает совпадение
-
Максимальна
ли конструкция выбора?
-
Применение
минимальной конструкции выбора
-
Максимальный
выбор в перспективе
-
Символьные
классы и конструкция выбора
-
НКА, ДКА и
POSIX
-
"Самое
длинное совпадение, ближнее к левому краю"
-
Правило
"самого длинного совпадения, ближнего к левому краю" в
POSIX
-
Скорость и
эффективность
-
Сравнение ДКА
и НКА
-
Методика
построения регулярных выражений
-
Основные
факторы
-
Точность
формулировки
-
Затруднения и
непреодолимые препятствия
-
Исключение
нежелательных совпадений
-
Поиск текста
в ограничителях
-
Данные и
предположения
-
Еще несколько
примеров максимализма
-
Итоги
-
Итоги по
механике поиска
-
Примеры
практического использования
- Убедительный
пример
-
Простое
изменение - начинаем с более вероятного случая
-
Локализация
максимального поиска
-
Возвращение к
реальности
-
Возврат с
глобальной точки зрения
-
POSIX НКА -
работа продолжается
-
Работа
механизма при отсутствии совпадения
-
Уточнение
-
Конструкция
выбора может дорого обойтись
-
Активный
старт
-
Влияние
круглых скобок
-
Внутренние
оптимизации
-
Исключение по
первому символу
-
Проверка
фиксированных строк
-
Простое
повторение
-
Исключение
лишних квантификаторов
-
Учет длины
текста
-
Учет длины
совпадения
-
Учет границ
совпадения
-
Границы
логических строк/фрагментов
-
Кэширование
при компиляции
-
Определение
типа механизма
-
Базовый НКА
или ДКА?
-
Традиционный
НКА или POSIX НКА?
-
Раскрутка
цикла
-
Метод 1:
построение регулярного выражения по результатам тестов
-
Общий шаблон
"раскрутки цикла"
-
Метод 2:
структурный анализ
-
Метод 3:
доменные имена Интернета
-
Замечания
-
Раскрутка
цикла на примере поиска комментариев C
-
Проблемы
регулярных выражений
-
Наивный
подход
-
Раскрутка
выражения для поиска комментариев C
-
Исключение
случайных совпадений
-
Управление
поиском совпадения
-
Управление
поиском = скорость
-
Свертка
-
Думайте!
-
Крутые
повороты оптимизации
- Вопросы,
которые вы должны задать
-
Даже такие
простые программы, как grep...
-
В этой главе
-
Awk
-
Различия
между диалектами регулярных выражений awk
-
Функции и
операции awk для работы с регулярными выражениями
-
Tcl
-
Передача
регулярных выражений в операндах Tcl
-
Использование
регулярных выражений в Tcl
-
Оптимизация
регулярных выражений Tcl
-
GNU Emacs
-
Строки Emacs
как регулярные выражения
-
Диалект
регулярных выражений Emacs
-
Результаты
поиска в Emacs
-
Хронометраж в
Emacs
-
Оптимизация
регулярных выражений в Emacs
- В этой
главе
-
Путь Perl
-
Регулярные
выражения как компонент языка
-
Самая сильная
сторона Perl
-
Самая слабая
сторона Perl
-
Курица, яйцо
и Путь Perl
-
Ознакомительный
пример: анализ текста, разделенного запятыми
-
Регулярные
выражения и Путь Perl
-
Пришествие
Perl
-
Perl'измы из
области регулярных выражений
-
Контекст
выражения
-
Динамическая
видимость и последствия совпадения регулярных выражений
-
Специальные
переменные, изменяемые при поиске
-
Предварительная
обработка и интерполяция переменных
-
Диалект
регулярных выражений Perl
-
Квантификаторы
- максимальные и минимальные
-
Группировка
-
Якорные
метасимволы
-
Привязка к
текущей позиции при глобальном поиске
-
Границы слов
-
Удобные
сокращения и другие синтаксические элементы
-
Символьные
классы
-
Изменение
регистра символов с применением \Q и аналогов
-
Оператор
поиска
-
Ограничители
регулярного выражения-операнда
-
Модификаторы
поиска
-
Определение
целевого текста
-
Другие
побочные эффекты оператора поиска
-
Значение,
возвращаемое оператором поиска
-
Внешние
факторы, влияющие на работу оператора поиска
-
Оператор
подстановки
-
Операнд-замена
-
Модификатор
/e
-
Контекст и
возвращаемое значение
-
Применение
модификатора /g с регулярными выражениями, которые могут совпадать с
пустой строкой
-
Оператор
разбиения
-
Простейшее
разбиение
-
Нетривиальное
разбиение
-
Нетривиальное
использование первого операнда split
-
Оператор
split в скалярном контексте
-
Сохраняющие
круглые скобки в первом операнде split
-
Проблемы
эффективности в Perl
-
У каждой
задачи есть несколько решений
-
Компиляция
регулярных выражений, модификатор /o и эффективность
-
Нежелательная
переменная $& и ее друзья
-
Влияние
модификатора /i на эффективность
-
Проблемы
эффективности подстановок
-
Хронометраж
-
Отладочная
информация регулярных выражений
-
Функция study
-
Все вместе
-
Удаление
начальных и конечных пропусков
-
Разделение
групп разрядов запятыми
-
Удаление
комментариев C
-
Поиск адресов
электронной почты
-
Последний
комментарий
-
Примечания,
относящиеся к Perl4
Приложение А.
Ресурсы Интернета
- Общие
сведения
-
Виртуальная
библиотека программ OAK (VSL)
-
Архив GNU
-
Yahoo!
-
Другие ссылки
в Web
-
Awk
-
Библиотеки C
-
Классы Java
для работы с регулярными выражениями
-
Egrep
-
Emacs
-
Flex
-
Perl
-
Python
-
Tcl
Алфавитный
указатель