Примените Regex в filter() в exchangelib

Я работаю над сценарием, который должен фильтровать тему с помощью регулярных выражений. Поддерживает ли exchangelib это? Если да, могу ли я привести примеры?

1 ответ

Решение

Регулярные выражения не поддерживаются в EWS, поэтому вы не можете выполнять фильтрацию на стороне сервера. Вам придется вытащить все элементы и выполнить фильтрацию на стороне клиента:

for item in account.inbox.all():
    if re.match(r'some_regexp', item.subject):
        # Do something

Если вы ожидаете совпадения только с очень немногими элементами, вы можете оптимизировать, сначала выбирая только поле темы, а затем полные элементы:

matches = []
for item in account.inbox.all().only('subject'):
    if re.match(r'some_regexp', item.subject):
        matches.append(item)
full_items = account.fetch(matches)
Другие вопросы по тегам