Was ist der Typ des kompilierten regulären Ausdrucks in Python?
Insbesondere möchte ich bewerten
isinstance(re.compile(''), ???)
um wahr zu sein, zu Zwecken der Selbstbeobachtung.
Eine Lösung, die ich hatte, war, eine globale Konstante zu haben REGEX_TYPE = type(re.compile(''))
, aber sie scheint nicht sehr elegant zu sein.
BEARBEITEN: Der Grund, warum ich dies tun möchte, ist, dass ich eine Liste von Zeichenfolgen und kompilierten Regex-Objekten habe. Ich möchte eine Zeichenfolge mit der Liste "abgleichen"
- Versuchen Sie für jede Zeichenfolge in der Liste, die Zeichenfolgengleichheit zu überprüfen.
- Überprüfen Sie für jeden regulären Ausdruck in der Liste, ob die Zeichenfolge mit dem angegebenen Muster übereinstimmt.
und der Code, den ich mir ausgedacht habe, war:
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