Я бы обязательно проверил папку со спамом. Потому что иногда некоторые почтовые фильтры обрабатывают текстовые электронные письма со ссылками довольно резко.
Я рекомендую взять (некоторые IDE с) Python-отладчик и с помощью pdb (python-отладчик) пройтись по django.contrib.auth.form.PasswordResetForm.save и django.contrib.auth.views.password_reset, чтобы увидеть, что делает не работает.
Имеется PathMatchSpec , но обработка специализирована для файлов, поэтому результаты могут быть не такими, как вы ожидаете, если вам нужно общее сопоставление с подстановочными знаками.
В противном случае вам, вероятно, следует используйте RegEx, как подробно рассказал Павел.
[редактировать]
Я неправильно предположил, что PathMatchSpec
разделяет свойства FindFirstFile / FindNextFile . Я провел несколько тестов - нет. Так что похоже, что это лучший кандидат.
Если вам нужно простое сравнение с подстановочными знаками ( подстановка ), некоторые люди написали свои собственные, включая этот (который мы используем в нашем коде)
Каковы ваши требования? Вы просто хотите использовать символ «» для соответствия 0 или более символов или планируете использовать «?» символ тоже. Если это просто «», нужно ли вам искать шаблоны типа a, a , a b, a b * c и т. Д.? Если ваши требования ограничены, вы можете легко обойтись с помощью функции strstr библиотеки времени выполнения C ++.
API FindFirstFile
и FindNextFile
сопоставляют подстановочные знаки, но только для имен файлов.
Вы не можете использовать что-либо ] а Win32? А как насчет STL или CRT? Вы используете Boost?
Без ограничения Win32 API я бы рекомендовал использовать код из какого-нибудь проекта с открытым исходным кодом. Другой вариант - перевести глобус в регулярное выражение, что, как я считаю, можно сделать с помощью операции замены регулярного выражения.
edit: Первое совпадение в Google - это код PHP:
Самым простым было бы преобразовать шаблон глобуса в регулярное выражение по следующим правилам:
*
становится . *
?
становится .
\ |. ^ $ + () [] {}
экранируются, ставя перед ними \
Это частично верно.
Следующие правила вводятся из поведения DIR в Командная строка XP +:
*
совпадает с *. *
и становится регулярным выражением . +
?
становится регулярным выражением .?
, если только с последующим без подстановочного знака
?
без подстановочного символа становится регулярным выражением .
*.
означает «без расширения» и становится [^.] + $