API Win32, чтобы сделать подстановочный знак представляет соответствие в виде строки

Я бы обязательно проверил папку со спамом. Потому что иногда некоторые почтовые фильтры обрабатывают текстовые электронные письма со ссылками довольно резко.

Я рекомендую взять (некоторые IDE с) Python-отладчик и с помощью pdb (python-отладчик) пройтись по django.contrib.auth.form.PasswordResetForm.save и django.contrib.auth.views.password_reset, чтобы увидеть, что делает не работает.

9
задан Tim Sylvester 31 July 2009 в 21:26
поделиться

5 ответов

Имеется PathMatchSpec , но обработка специализирована для файлов, поэтому результаты могут быть не такими, как вы ожидаете, если вам нужно общее сопоставление с подстановочными знаками.

В противном случае вам, вероятно, следует используйте RegEx, как подробно рассказал Павел.

[редактировать] Я неправильно предположил, что PathMatchSpec разделяет свойства FindFirstFile / FindNextFile . Я провел несколько тестов - нет. Так что похоже, что это лучший кандидат.

10
ответ дан 4 December 2019 в 07:48
поделиться

Если вам нужно простое сравнение с подстановочными знаками ( подстановка ), некоторые люди написали свои собственные, включая этот (который мы используем в нашем коде)

4
ответ дан 4 December 2019 в 07:48
поделиться

Каковы ваши требования? Вы просто хотите использовать символ «» для соответствия 0 или более символов или планируете использовать «?» символ тоже. Если это просто «», нужно ли вам искать шаблоны типа a, a , a b, a b * c и т. Д.? Если ваши требования ограничены, вы можете легко обойтись с помощью функции strstr библиотеки времени выполнения C ++.

0
ответ дан 4 December 2019 в 07:48
поделиться

API FindFirstFile и FindNextFile сопоставляют подстановочные знаки, но только для имен файлов.

Вы не можете использовать что-либо ] а Win32? А как насчет STL или CRT? Вы используете Boost?

Без ограничения Win32 API я бы рекомендовал использовать код из какого-нибудь проекта с открытым исходным кодом. Другой вариант - перевести глобус в регулярное выражение, что, как я считаю, можно сделать с помощью операции замены регулярного выражения.

edit: Первое совпадение в Google - это код PHP:

http://cvs.php.net/ viewvc.cgi / php-src / win32 /

3
ответ дан 4 December 2019 в 07:48
поделиться

Самым простым было бы преобразовать шаблон глобуса в регулярное выражение по следующим правилам:

  • * становится . *
  • ? становится .
  • ] Любые из \ |. ^ $ + () [] {} экранируются, ставя перед ними \

Это частично верно.

Следующие правила вводятся из поведения DIR в Командная строка XP +:
* совпадает с *. * и становится регулярным выражением . +
? становится регулярным выражением .? , если только с последующим без подстановочного знака
? без подстановочного символа становится регулярным выражением .
*. означает «без расширения» и становится [^.] + $

5
ответ дан 4 December 2019 в 07:48
поделиться