Страница 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

Код: Выделить всё

${if match {$h_subject}{\N\{(.*)})\N}{$1}} 
засунет то что между {} в $1, как то так

Re: match вхождения

Добавлено: 2012-06-21 15:24:31
absokolov
hizel писал(а):

Код: Выделить всё

${if match {$h_subject}{\N\{(.*)})\N}{$1}} 
засунет то что между {} в $1, как то так
Ну сама регулярка - это не проблема.
Я попробовал Ваш вариант, и со вставкой "{$1}" письма вообще не попадают. Просто такое чувство что кондишн завершается фальшем.
Хотя если без этой вставки - то работает.

Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....

P.S. правда переменную переименовал немного: "$h_subject:"

Re: match вхождения

Добавлено: 2012-06-21 15:56:13
hizel
я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа

Код: Выделить всё

set acl_m1 = ${if bla bla}
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?

Re: match вхождения

Добавлено: 2012-06-21 17:22:37
absokolov
hizel писал(а):я не предлагал готового решения
Тут как раз главный вопрос в том, как записать данные из регулярки в переменные....
читайте документацию, 11 глава, про $0,$1, etc, а устанавливайте через set, типа

Код: Выделить всё

set acl_m1 = ${if bla bla}
надеюсь вы помните, что subject где-то в районе acl_check_data появляется?
Да, конечно помню )))
Спасибо Вам за помощь.
Вот что получилось и успешно работает:

Код: Выделить всё

set acl_m_match = ${if match{$header_Subject:}{\N\{(.*)\}\N}{$1}}