Страница 1 из 1
match вхождения
Добавлено: 2012-06-21 13:36:31
absokolov
Здравствуйте уважаемые форумчане.
Собственно возникла потребность вырезать кусочек из заголовка subject для дальнейшей обработки.
Пытался сделать ч-з match, но на сколько я понял после обработки невозможно получить вхождения в регулярку.
Каким образом это можно сделать еще? Или все таки match может вернуть все что нашел?
P.S. Текст который требуется вырезать упакован в круглые скобки "{text}". Причем сам текст разный почти в каждом письме.
Может ли кто-то что-то посоветовать?
Спасибо!
Re: match вхождения
Добавлено: 2012-06-21 13:58:18
hizel
чего то в вашем вопросе не хватает, например, что за mta вы пользуете. как думаете?
Re: match вхождения
Добавлено: 2012-06-21 14:26:19
absokolov
Да, прошу прощение. Exim 4.72
Re: match вхождения
Добавлено: 2012-06-21 15:01:58
hizel
засунет то что между {} в $1, как то так
Re: match вхождения
Добавлено: 2012-06-21 15:24:31
absokolov
hizel писал(а):
засунет то что между {} в $1, как то так
Ну сама регулярка - это не проблема.
Я попробовал Ваш вариант, и со вставкой "{$1}" письма вообще не попадают. Просто такое чувство что кондишн завершается фальшем.
Хотя если без этой вставки - то работает.
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
P.S. правда переменную переименовал немного: "$h_subject:"
Re: match вхождения
Добавлено: 2012-06-21 15:56:13
hizel
я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?
Re: match вхождения
Добавлено: 2012-06-21 17:22:37
absokolov
hizel писал(а):я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?
Да, конечно помню )))
Спасибо Вам за помощь.
Вот что получилось и успешно работает:
Код: Выделить всё
set acl_m_match = ${if match{$header_Subject:}{\N\{(.*)\}\N}{$1}}