2010-12-31 10 views
5

संभव डुप्लिकेट:
Can regular expressions be used to match nested patterns?Regex नेस्टेड कोष्ठक के लिए खोज करने के लिए

मैं कैसे खोलने की एक जोड़ी खोजने और इसके लिए रेगुलर एक्सप्रेशन का उपयोग करते अंदर नेस्टेड कोष्ठक के मनमाने ढंग से संख्या के साथ कोष्ठक बंद करने उदाहरण के लिए

(...(...(...(...) ...) ...) ...) 

प्रत्येक उद्घाटन ब्रैकेट को एक समापन ब्रैकेट से मेल खाना चाहिए। और नेस्टेड उद्घाटन-समापन जोड़ी की संख्या मनमाने ढंग से है। अन्य अल्फान्यूमेरिक वर्ण ब्रैकेट के अंदर दिखाई दे सकते हैं।

+0

आप क्या हासिल करने की कोशिश कर रहे हैं? (क्या आप बस यह सुनिश्चित करना चाहते हैं कि खुली और करीबी संश्लेषण की समान संख्या हो?) –

+7

नियमित अभिव्यक्ति हमेशा उत्तर नहीं होती है - आप केवल स्ट्रिंग के माध्यम से स्कैन कर सकते हैं और ब्रैकेट के उचित घोंसले को सत्यापित करने के लिए एक स्टैक का उपयोग कर सकते हैं। –

+4

आप नहीं कर सकते। मनमाने ढंग से घोंसले वाले कोष्ठक एक गैर-नियमित संदर्भ-मुक्त भाषा का एक शास्त्रीय उदाहरण हैं, यानी शास्त्रीय regexp बस पर्याप्त अभिव्यक्तिपूर्ण नहीं है। –

उत्तर

1

तुम सच में रेगुलर एक्सप्रेशन से उपयोग करने के लिए (मुझे यकीन है कि यह अच्छा तरीका है नहीं कर रहा हूँ) यह करने के लिए चाहते हैं, तो आप कर सकते हैं पाश इस regex \([^\(\)]*\) कुछ भी नहीं, वापस आती है और प्रत्येक बार आप कुछ पाने के लिए आप को दूर करने के लिए है जब तक परिणामस्वरूप प्रारंभिक और लूप फिर से ...

संबंधित मुद्दे