Каков тип скомпилированного регулярного выражения в python?
В частности, я хочу оценить
isinstance(re.compile(''), ???)
чтобы быть правдой, для целей самоанализа.
Одно из решений, которое у меня было, имело некоторую глобальную константу REGEX_TYPE = type(re.compile(''))
, но это не кажется очень изящным.
EDIT: Причина, по которой я хочу сделать это, состоит в том, что у меня есть список строк и скомпилированные объекты регулярных выражений. Я хочу "сопоставить" строку со списком,
- для каждой строки в списке, попробуйте проверить равенство строки.
- для каждого регулярного выражения в списке, попробуйте проверить, соответствует ли строка данному шаблону.
и код, который я придумал, был:
for allowed in alloweds:
if isinstance(allowed, basestring) and allowed == input:
ignored = False
break
elif isinstance(allowed, REGEX_TYPE) and allowed.match(input):
ignored = False
break