Регулярные выражения · 9 min read · Dec 30, 2025

6.0 Сопоставление и регулярные выражения (регулярные выражения)

Автор: Яри Аалто.

1.0 Идентификатор документа

  • 1.1 Общая информация
  • 1.2 Что такое Procmail?
  • 1.3 Сокращения и благодарности
  • 1.4 Информация о версии
  • 1.5 Структура документа и его поддержка
  • 1.6 О представленных рецептах
  • 1.7 Переменные, используемые в рецептах
  • 1.8 О “бесполезном использовании cat award” 2.0 Указатели Procmail
  • 2.1 Где разрабатывается procmail
  • 2.2 Ресурсы Procmail
  • 2.3 Режим Procmail для Emacs
  • 2.4 Проект библиотеки модулей Procmail
  • 2.5 Код Procmail для фильтрации UBE 3.0 Тестирование без выполнения
  • 3.1 Что такое тестирование без выполнения?
  • 3.2 Почему поле From не в порядке после тестирования без выполнения?
  • 3.3 Получение значения по умолчанию переменной procmail 4.0 Вещи, которые нужно помнить
  • 4.1 Получите последнюю версию procmail
  • 4.2 Тильда Csh не поддерживается
  • 4.3 Убедитесь, что рецепт начинается правильно
  • 4.4 Всегда устанавливайте SHELL
  • 4.5 Проверьте и установите PATH
  • 4.6 Держите журнал всегда включенным
  • 4.7 Никогда не добавляйте завершающий слэш для каталогов
  • 4.8 Помните, что термин DELIVERED означает
  • 4.9 Будьте осторожны, ставя комментарии в неправильные места
  • 4.10 Расположение фигурных скобок
  • 4.11 Использование локального блокировочного файла
  • 4.12 Глобальный блокировочный файл
  • 4.13 Ой, куда мне положить все эти ! * $ ??
  • 4.14 Если вы отправляете автоматический ответ, используйте заголовок X-loop
  • 4.15 Избегайте дополнительного уровня оболочки и проверьте команду на SHELLMETAS
  • 4.16 Подумайте, какие команды оболочки вы используете
  • 4.17 Использование абсолютных путей при вызове программы оболочки
  • 4.18 Временное отключение рецепта
  • 4.19 Храните резервную копию сообщения, что бы ни случилось
  • 4.20 Порядок рецептов procmail 5.0 Флаги Procmail
  • 5.1 Порядок флагов
  • 5.2 Флаги HB в начале рецепта (предупреждение)
  • 5.3 Флаг w и рецепт с |
  • 5.4 Флаг w, блокировочный файл и рецепт с |
  • 5.5 Флаг f и w вместе
  • 5.6 Флаги h и b
  • 5.7 Флаг h и отправка в /dev/null
  • 5.8 Флаг i и флаг трубы f
  • 5.9 Флаг r
  • 5.10 Фон флага c
  • 5.11 Флаг c перед вложенным блоком создает дочерний процесс
  • 5.12 Флаг c и понимание возможного штрафа за форк
  • 5.13 Флаги перед вложенным блоком
  • 5.14 Учебник по флагам aAeE 6.0 Сопоставление и регулярные выражения (регулярные выражения)
  • 6.1 Философия абстракции в регулярных выражениях
  • 6.2 Сопоставления не чувствительны к регистру
  • 6.3 Procmail использует многострочные сопоставления
  • 6.4 Заголовки разворачиваются перед сопоставлением
  • 6.5 Улучшение синдрома пробел-табуляция
  • 6.6 Обработка символа восклицания
  • 6.7 Правила для генерации класса символов
  • 6.8 Сопоставление пробела в конце условия
  • 6.9 Будьте осторожны с ведущим обратным слэшем
  • 6.10 Правильное использование макроса TO
  • 6.11 Движок регулярных выражений Procmail
  • 6.12 Различия между Procmail и egrep
  • 6.13 Понимание минимального сопоставления procmail (скупой против жадного)
  • 6.14 Объяснение \/ и ()\/
  • 6.15 Объяснение ^^ и ^
  • 6.16 ANDing традиционно
  • 6.17 ORing традиционно
  • 6.18 ORing и рецепт со счетом
  • 6.19 ORing с использованием правил Де Моргана 7.0 Переменные
  • 7.1 Установка и снятие переменных
  • 7.2 Инициализация переменных и синтаксис sh
  • 7.3 Тестирование переменных
  • 7.4 Что означает $\VAR?
  • 7.5 Общие ловушки при использовании переменных
  • 7.6 Кавычки: Использование одинарных или двойных кавычек
  • 7.7 Кавычки: Передача значений внешней программе
  • 7.8 Передача значений из внешней программы
  • 7.9 Увеличение переменной на значение N
  • 7.10 Сравнение значений
  • 7.11 Строки: Сколько символов в данной строке?
  • 7.12 Строки: Как удалить завершающий перевод строки.
  • 7.13 Строки: получение последних N символов строки.
  • 7.14 Строки: Получение частичных совпадений из строки.
  • 7.15 Строки: Пример манипуляции строками Procmail
  • 7.16 Как поднять флаг, если сообщение было отфильтровано
  • 7.17 Знак доллара в строках условий.
  • 7.18 Поиск загадочной переменной foo
  • 7.19 Хранение кода в переменной
  • 7.20 Получение заголовков в переменную.
  • 7.21 Преобразование значения в нижний регистр 8.0 Предложения и прочее
  • 8.1 Ускорение procmail
  • 8.2 Посмотрите примеры установки procmail
  • 8.3 Печать статистики вашей входящей почты
  • 8.4 Хранение почтовых ящиков UBE вне квоты
  • 8.5 Использование первых 5-30 строк из сообщения
  • 8.6 Использование cat или echo в скриптах?
  • 8.7 Как запустить дополнительную команду оболочки как побочный эффект?
  • 8.8 Принуждение к статусу возврата “ok” из оболочки
  • 8.9 Сделайте свой собственный .procmailrc доступным для других
  • 8.10 Эффективное использование дат
  • 8.11 Держите простой журнал заголовков
  • 8.12 Сжатие сообщений
  • 8.13 Аварийная остановка для вашего .procmailrc 9.0 Оценка
  • 9.1 Использование оценок по примеру
  • 9.2 Краткий учебник по оценкам
  • 9.3 Область применения оценки
  • 9.4 Подсчет длины строки
  • 9.5 Подсчет строк в сообщении (Добавление строк: заголовок)
  • 9.6 Определение, длиннее ли тело, чем заголовок
  • 9.7 Сопоставление последнего заголовка Received
  • 9.8 Тестирование диапазона значений с оценкой (bogofilter)
  • 9.9 Как добавить заголовок Content-Length
  • 9.10 Тестирование размера сообщения или количества строк
  • 9.11 Подсчет запятых с помощью рекурсивного includerc 10.0 Использование Formail
  • 10.1 Получение полей с помощью formail -x
  • 10.2 Всегда используйте -rt переключатель formail
  • 10.3 Использование -rt и переписывание адреса From
  • 10.4 Formail -rt и заголовок Resent-From
  • 10.5 Кавычки сообщения
  • 10.6 Без кавычек сообщения
  • 10.7 Как включить заголовки и тело в ответное сообщение
  • 10.8 Добавление текста в начало сообщения
  • 10.9 Добавление текста в конец сообщения
  • 10.10 Добавление текста перед цитируемым сообщением
  • 10.11 Добавление дополнительных заголовков из файла
  • 10.12 Разделение дайджеста
  • 10.13 Почтовый ящик: Разделение на отдельные файлы
  • 10.14 Почтовый ящик: Извлечение всех адресов From из почтового ящика
  • 10.15 Почтовый ящик: Применение рецепта procmail ко всему почтовому ящику
  • 10.16 Почтовый ящик: выполнение серии команд для каждой почты (разделение почтового ящика)
  • 10.17 Опция -D и кэш
  • 10.18 Опция -D и message-id в теле
  • 10.19 Снижение вызовов formail (условное добавление полей)
  • 10.20 Опции Formail -A -a
  • 10.21 Опции Formail -e -s 11.0 Сохранение сообщений рассылки
  • 11.1 Использование подпрограммы pm-jalist.rc для обнаружения рассылок
  • 11.2 Использование адреса с плюсом [email protected]
  • 11.3 Использование трюка с комментариями RFC для дополнительной информации
  • 11.4 Простое управление рассылками
  • 11.5 Архивирование в соответствии с TO
  • 11.6 Использование Return-Path для обнаружения рассылок 12.0 Procmail, MIME и HTML
  • 12.1 Библиография Mime
  • 12.2 Заметки Mime
  • 12.3 Программное обеспечение для работы с mime или HTML
  • 12.4 Тип содержимого mime application/ms-tnef
  • 12.5 Ловля HTML mime сообщений
  • 12.6 Жалобы на HTML сообщения
  • 12.7 Преобразование HTML тела в простой текст
  • 12.8 Избавление от нежелательных вложений mime (HTML, vcard)
  • 12.9 Отправка содержимого HTML страницы в простом тексте кому-то 13.0 Примеры простых рецептов
  • 13.1 Сохранение: MH папки – пронумерованные сообщения
  • 13.2 Сохранение: в ежемесячные папки
  • 13.3 Модификация: Основы фильтрации
  • 13.4 Модификация: Сжатие пустых строк вокруг тела сообщения
  • 13.5 Модификация: Перемешивание заголовков всегда в одном и том же порядке
  • 13.6 Сервис: Автоответчик для пустых сообщений
  • 13.7 Сервис: Ответчик на пинг
  • 13.8 Сервис: простой отпуск с procmail
  • 13.9 Сервис: пример кода отпуска
  • 13.10 Сервис: Автопересылка
  • 13.11 Сервис: пересылка только определенных сообщений
  • 13.12 Сервис: Создание дайджестов
  • 13.13 Убить: удаление рекламных заголовков и подвалов
  • 13.14 Убить: простой рецепт kill файла с procmail
  • 13.15 Убить: дублирующиеся сообщения
  • 13.16 Убить: фильтр спама с простыми рецептами
  • 13.17 Убить: (не)подписаться на сообщения
  • 13.18 Время: Один раз в день, как cron
  • 13.19 Время: Запуск рецепта в заданное время
  • 13.20 Время: Триггер почты и использование cron
  • 13.21 Декодирование: Uudecode
  • 13.22 Декодирование: MIME
  • 13.23 Как отправить команды в теле сообщения
  • 13.24 Сопоставление двух слов в строке, но не одного
  • 13.25 Как определить личные макросы XX?
  • 13.26 Как изменить тему по совпадению в теле
  • 13.27 Как изменить тему в соответствии с другим заголовком
  • 13.28 Как вызвать программу с параметрами 14.0 Разное
  • 14.1 Сопоставление действительного заголовка Message-Id
  • 14.2 Отправка двух файлов в сообщении
  • 14.3 Чрезмерные кавычки сообщения
  • 14.4 Отправка сообщения на пейджер частями
  • 14.5 Воспроизведение определенного звука, когда сообщение приходит
  • 14.6 Объединение нескольких заголовков Original-Cc и Original-To
  • 14.7 Пересылка конфиденциальных сообщений в зашифрованном формате 15.0 Procmail и PGP
  • 15.1 Автоматическая расшифровка pgp сообщений
  • 15.2 Получение ключей с сервера ключей
  • 15.3 Авто захват входящих pgp ключей 16.0 Использование Includerc
  • 16.1 Использование: несколько rc файлов
  • 16.2 Использование: условный вызов rc файла
  • 16.3 Использование: автоматическая загрузка rc файла
  • 16.4 Создание: именование rc файла
  • 16.5 Создание: Использование пространства имен при сохранении переменных procmail
  • 16.6 Создание: Публичные и частные переменные в rc файле
  • 16.7 Правила для построения общего rc файла
  • 16.8 Шаблон includerc 17.0 Сервер рассылки 18.0 Общие проблемы
  • 18.1 Режимы Procmail: нормальный, доставка и фильтр почты.
  • 18.2 Procmail как устройство фильтрации почты sendmail Mlocal
  • 18.3 Procmail не передает 8-битные символы
  • 18.4 Мой провайдер не очень заинтересован в установке procmail
  • 18.5 У моего провайдера есть системный procmailrc; это хорошая идея?
  • 18.6 Procmail изменяет разрешения почтового ящика и каталога
  • 18.7 Изменение разрешений mbox во время компиляции на 660
  • 18.8 Файл .forward должен быть реальным файлом
  • 18.9 Использование .forward, если procmail уже является LDA
  • 18.10 Почта должна помещаться в очередь, если запись не удалась
  • 18.11 Qmail: как заставить его работать с procmail
  • 18.12 Qmail: Procmail ищет файл только в /var/spool/mail
  • 18.13 Qmail: патч для procmail 3.11pre7 для работы с Maildirs
  • 18.14 AFS: Как использовать Procmail, когда HOME находится в ячейке AFS
  • 18.15 Помощь, какой-то идиот отправил мой адрес на 30 рассылок
  • 18.16 Помощь, Procmail издает звуковой сигнал и печатает на моем консоли
  • 18.17 Помощь, procmail сбрасывает почту на консоль
  • 18.18 Помощь, поврежденная строка From_ в почтовом ящике
  • 18.19 Направление почты пользователя в HOME вместо /var/spool/
  • 18.20 NFS монтирование /var/mail - хороший способ получить плохую производительность
  • 18.21 Я не вижу ответа sendmail в LOGFILE
  • 18.22 Компиляция procmail и выбор схемы блокировки
  • 18.23 Пересылка большого количества почты вызывает большую нагрузку
  • 18.24 Что происходит с почтой, если MDA Procmail не удается
  • 18.25 Procmail читает все 90Mb сообщение в память
  • 18.26 Помощь, procmail иногда использует огромный объем памяти
  • 18.27 Procmail сигнализировал о нехватке памяти в моем подробном журнале
  • 18.28 Переменные DEFAULT и ORGMAIL
  • 18.29 Когда DEFAULT не может быть отправлен
  • 18.30 Переменная DROPPRIVS
  • 18.31 Переменная HOME
  • 18.32 Переменная HOST
  • 18.33 Переменная LINEBUF
  • 18.34 Переменная LOG и LOGFILE
  • 18.35 Переменная TRAP
  • 18.36 Переменная UMASK
  • 18.37 UMASK и разрешения
  • 18.38 Разница в производительности между обратными кавычками и “|” рецептом
  • 18.39 Временные имена файлов Procmail при записи файла
  • 18.40 Параметр $@
  • 18.41 Переменные Procmail завершаются нулем (обнаружение нулевой строки)
  • 18.42 FROMDAEMON TO и TO и чувствительность к регистру
  • 18.43 Макрос TO_ расшифрован
  • 18.44 Макрос TO_ и RFC 822
  • 18.45 FROM_DAEMON расшифрован 19.0 Технические вопросы
  • 19.1 Список кодов выхода
  • 19.2 Список кодов приоритета
  • 19.3 Sendmail и -t
  • 19.4 RFC822 Reply-To и проблема formail с несколькими получателями
  • 19.5 Procmail и IMAP сервер
  • 19.6 Машина, которая обрабатывает почту
  • 19.7 Компиляция procmail и MAILSPOOLHOME 20.0 Программное обеспечение Procmail для Emacs
  • 20.1 Что такое Emacs
  • 20.2 Режим procmail для Emacs и проверка кода Procmail (Lint)
  • 20.3 Почему использовать procmail с Gnus
  • 20.4 Настройка Gnus для procmail - Основы
  • 20.5 Gnus для procmail - Подробнее об этом
  • 20.6 Emacs и Gnus – Работа с файлами спула
  • 20.7 Фрагменты статей Gnus 21.0 RFC, Запрос на комментарии
  • 21.1 RFC и их юрисдикция (измененные адреса)
  • 21.2 Комментарии об изменении адресов
  • 21.3 RFC и допустимые символы адреса электронной почты
  • 21.4 RFC и login-name@fdqn
  • 21.5 RFC и подпись сообщений
  • 21.6 RFC и использование MIME в новостных группах
  • 21.7 Некоторые указания по RFC 22.0 Введение в заголовки электронной почты
  • 22.1 Чтобы узнать больше о почте (Ресурсы)
  • 22.2 Лекция Алана Стеббенса
  • 22.3 Применение к полученным сообщениям
  • 22.4 Заголовок Message-Id
  • 22.5 Заголовок Received
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.