Примените 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)