Dans la section "Regular Expression Objects" de la documentation du module re
:
RegexObject.pattern
La chaîne de configuration à partir de laquelle l'objet RE a été compilé.
Par exemple:
>>> import re
>>> p = re.compile('my pattern')
>>> p
<_sre.SRE_Pattern object at 0x1001ba818>
>>> p.pattern
'my pattern'
Avec le module re
en Python 3.0 et au-dessus, vous pouvez trouver cela en faisant un dir(p)
simple:
>>> print(dir(p))
['__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__gt__',
'__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__',
'__str__', '__subclasshook__', 'findall', 'finditer', 'flags',
'groupindex', 'groups', 'match', 'pattern', 'scanner', 'search',
'split', 'sub', 'subn']
Cela ne pas travail sur Python 2.6 (ou 2.5) - la commande dir
n'est pas parfaite, donc ça vaut toujours la peine de vérifier les docs!
>>> print dir(p)
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner',
'search', 'split', 'sub', 'subn']
Merci. Je ne lis pas docs parce que j'essaye je dir (p) et il n'affiche que plusieurs attributs et méthodes. http://stackoverflow.com/questions/1415924/how-can--obtain-pattern-string-from-compiled-regexp-pattern-in-python/1415943#1415943 –
J'ai fait de même, supposé qu'il n'y avait pas de simple façon de l'obtenir :) – Anentropic
semble comme dans python3 dir (some_compiled_pattern) affiche les attributs, mais pas dans 2.7 –