मैं अजगर में संकलित regexp पैटर्न से पैटर्न स्ट्रिंग कैसे प्राप्त कर सकता हूं


87

मेरे पास इस तरह का कुछ कोड है:

>>> import re
>>> p = re.compile('my pattern')
>>> print p
_sre.SRE_Pattern object at 0x02274380

क्या चर "my pattern"से स्ट्रिंग प्राप्त करना संभव है p?

जवाबों:


108
p.pattern

यहाँ पुनः मॉड्यूल के बारे में और पढ़ें: http://docs.python.org/library/re.html


7
धन्यवाद। मैं डॉक्स नहीं पढ़ता हूं क्योंकि मैं i dir (p) आज़माता हूं और यह केवल कई विशेषताओं और विधियों को प्रदर्शित करता है। stackoverflow.com/questions/1415924/…
Mykola Kharechko

मैंने ऐसा ही किया, मान लिया कि इसे पाने का कोई सरल तरीका नहीं है :)
Anentropic

1
ऐसा लगता है जैसे python3 dir (some_compiled_pattern) विशेषताओं को प्रदर्शित करता है, लेकिन 2.7 में नहीं
डेविड लैम

10
> ऐसे सवाल पोस्ट करने से पहले डॉक्स क्यों नहीं पढ़े? क्योंकि जब आप Google StackOverflow पहले लौटते हैं। बिल्कुल सही सवाल।
आरोन

21

मॉड्यूल प्रलेखन के "नियमित अभिव्यक्ति ऑब्जेक्ट्स" अनुभाग से re:

RegexObject.pattern

पैटर्न स्ट्रिंग जिसमें से आरई ऑब्जेक्ट संकलित किया गया था।

उदाहरण के लिए:

>>> import re
>>> p = re.compile('my pattern')
>>> p
<_sre.SRE_Pattern object at 0x1001ba818>
>>> p.pattern
'my pattern'

साथ reअजगर 3.0 में और ऊपर मॉड्यूल, आप एक सरल तरीके से वह पा सकते हैं dir(p):

>>> 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']

हालांकि यह अजगर 2.6 (या 2.5) पर काम नहीं करता है - dirकमांड सही नहीं है, इसलिए यह हमेशा डॉक्स की जांच करने के लायक है!

>>> print dir(p)
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner',
'search', 'split', 'sub', 'subn']

9

हाँ:

print p.pattern

संकेत, dirसदस्यों की एक सूची प्राप्त करने के लिए अजगर में फ़ंक्शन का उपयोग करें :

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']

3
help( value )कंसोल पर बहुत अधिक उपयोगी है।
जोहान रिट्जेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.