2010-11-16 29 views
5

के रूप में उपयोग करता है मेरे पास निम्नलिखित नियमित अभिव्यक्ति है, जो मुझे '20% + ', '20%', या '20% - re %plit का उपयोग कर 50% '। config.py से एक तर्क के रूप -पायथन: एक रेगेक्स स्ट्रिंग स्वरूपण स्ट्रिंग जो '%' और '{' दोनों अक्षरों

'([0-9]{1,3}[%])([+-]?)' 

मैं स्ट्रिंग स्वरूपण का उपयोग करने (अर्थात '+') श्रृंखला पहचानकर्ता पास करना चाहते हैं।

SERIES = '+-' 

दो तरीकों से मैंने त्रुटियों का उत्पादन करने की कोशिश की है। नई शैली स्वरूपण ({मी, n} उपयोग के कारण) निम्न त्रुटि में चलाता है:

>>> import config 
>>> regex = '([0-9]{1,3}[%])([%s]?)' % (config.SERIES) 
unsupported format character ']' (0x5d) at index 14 
:

>>> import config 
>>> regex = '([0-9]{1,3}[%])([{0}]?)'.format(config.SERIES) 
KeyError: '1,3' 

पुरानी शैली स्वरूपण अपनी ही समस्याओं ('%' चरित्र के कारण) है

मैं रेगेक्स के अंदर काम करने वाले भागने वाले पात्रों को पाने में सक्षम नहीं हूं। यह कैसे करें इस पर कोई विचार?

धन्यवाद,

माइक

उत्तर

10

आप %% उपयोग कर सकते हैं पुरानी शैली स्वरूपण का उपयोग कर एक प्रतिशत हस्ताक्षर डालने के लिए:

'([0-9]{1,3}[%%])([%s]?)' % (config.SERIES) 

इसी तरह नई शैली प्रारूपण के लिए दोहरे कोष्ठकों, :

'([0-9]{{1,3}}[%])([{0}]?)'.format(config.SERIES) 
संबंधित मुद्दे