मैं एक वर्ग बना रहा हूं जो उपयोगकर्ता द्वारा निर्दिष्ट प्रारूप का उपयोग कर फ़ाइल का नाम बदलता है। यह प्रारूप एक साधारण स्ट्रिंग होगी जिसका str.format
विधि रिक्त स्थान भरने के लिए बुलाया जाएगा।मैं regex का उपयोग कर एक पायथन स्ट्रिंग में str.format के लिए सभी प्लेसहोल्डर कैसे ढूंढ सकता हूं?
यह पता चला है कि मेरी प्रक्रिया को ब्रेसिज़ में निहित चर नामों को निकालने की आवश्यकता होगी। उदाहरण के लिए, एक स्ट्रिंग में {user}
हो सकता है, जो user
उत्पन्न करना चाहिए। बेशक, एक स्ट्रिंग में ब्रेसिज़ के कई सेट होंगे, और मुझे प्रत्येक की सामग्री प्राप्त करने की आवश्यकता होगी, जिसमें वे प्रकट होते हैं और उन्हें एक सूची में आउटपुट करते हैं।
इस प्रकार, "{foo}{bar}"
['foo', 'bar']
उत्पन्न करना चाहिए।
मुझे संदेह है कि ऐसा करने का सबसे आसान तरीका re.split
का उपयोग करना है, लेकिन मुझे नियमित अभिव्यक्तियों के बारे में कुछ भी नहीं पता है। क्या कोई मेरी मदद कर सकता है?
अग्रिम धन्यवाद!
यदि आप सभी संभावित चर * पहले से * जानते हैं, तो आप बस टी पास कर सकते हैं हेम 'str.format' के लिए सभी - यह उन लोगों को अनदेखा कर देगा जो पैटर्न में नहीं हैं। ''{user} _ {bar}' प्रारूप (उपयोगकर्ता = 'माइक', foo = 1, bar = 2)' आउटपुट 'माइक_2' होगा। मुझे खुशी है कि एक ताना में तय किए गए युद्धों को अनुमति दी गई है, इसलिए मैं पैटर्न में वर्रों की तलाश छोड़ सकता हूं। वैसे भी 'string.Formatter()' के बारे में जानना उपयोगी है। – yentsun