Назад | Перейти на главную страницу

Какие специальные символы работают в регулярном выражении sieve?

У меня есть почтовый клиент Roundcube Webmail v. 1.3.1 с расширением managesieve v. 8.7, и я хочу добавить некоторые действия, управляемые регулярным выражением, для моей почты, и единственная документация, которую я нашел по вкусу регулярных выражений, - этот документ. Однако я не могу найти, какие специальные символы он поддерживает, например \n (либо это \\n?), \r или \d и т.д. и как их писать. Упоминаются группы персонажей, определенные через [: :] который работает, но я бы предпочел использовать \n (который, похоже, не работает) вместо более широкого [:cntrl:] или [:space:] или тому подобное.

В документе написано, что он должен поддерживать стандарт POSIX ERE, однако я знаком с различными разновидностями регулярных выражений (тип PERL), поэтому мне это довольно сложно.

Можете ли вы помочь с выяснением, какие специальные символы и последовательности символов в нем поддерживаются? Какие символы не особенные и т. Д.?

Я придумал простое регулярное выражение для сопоставления даты в формате YYYY / MM / DD, затем пространство, затем время в формате HH: MM: SS, затем разрыв строки, а затем все, что в начале тела письма, но это не похоже работает. Вот код Sieve:

require ["body","fileinto","regex","vacation"];
# rule:[date and time]
if anyof (body :text :regex "[[:digit:]]{2}/[[:digit:]]{2}/[[:digit:]]{4} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}[[:space:]](.*[[:space:]]*)*")
{
vacation text:
YOU DID IT!
.
;
}

В документации Sieve, на которую вы ссылаетесь, указано, что она соответствует синтаксису регулярных выражений POSIX, который задокументирован по адресу

http://pubs.opengroup.org/onlinepubs/9699919799/nframe.html

Это будет наиболее точная ссылка.