परिचय
मुझे यहाँ पर कई रेगेक्स चुनौतियाँ नहीं दिखती हैं, इसलिए मैं इस भ्रामक सरल को प्रस्तुत करना चाहूँगा जिसे कई प्रकार से किया जा सकता है, जिसमें कई प्रकार के रीजेक्स फ्लेवर हैं। मुझे उम्मीद है कि यह थोड़ा मज़ेदार गोल्फिंग समय के साथ रेगेक्स उत्साही प्रदान करता है।
चुनौती
चुनौती यह है कि मैंने एक "समतावादी" श्रृंखला को बहुत शिथिल किया है: विभिन्न पात्रों की समान संख्या की एक श्रृंखला। यह उदाहरणों के साथ सबसे अच्छा वर्णित है।
मिलान करें:
aaabbbccc
xyz
iillppddff
ggggggoooooollllllffffff
abc
banana
मेल न करें:
aabc
xxxyyzzz
iilllpppddff
ggggggoooooollllllfff
aaaaaabbbccc
aaabbbc
abbaa
aabbbc
सामान्यीकरण करने के लिए, हम फ़ॉर्म के एक विषय ( किसी भी वर्ण की सूची के लिए , जहाँ सभी के लिए) का मिलान करना चाहते हैंc1)n(c2)n(c3)n...(ck)n
c1
ck
ci != ci+1
i, k > 1, and n > 0.
स्पष्टीकरण:
इनपुट खाली नहीं होगा।
एक चरित्र बाद में खुद को स्ट्रिंग में दोहरा सकता है (जैसे। "केला")
k > 1
, इसलिए स्ट्रिंग में हमेशा कम से कम 2 अलग-अलग वर्ण होंगे।आप मान सकते हैं कि केवल ASCII वर्ण इनपुट के रूप में पारित किए जाएंगे और कोई भी वर्ण लाइन टर्मिनेटर नहीं होगा।
नियम
(नियमों के इस उत्कृष्ट रूप से वर्णित ब्लॉक के लिए मार्टिन एंडर को धन्यवाद)
आपके उत्तर में एकल रेगेक्स शामिल होना चाहिए, बिना किसी अतिरिक्त कोड के (सिवाय, वैकल्पिक रूप से, आपके समाधान कार्य करने के लिए आवश्यक रेगेक्स संशोधक की सूची)। आपको अपनी भाषा के regex स्वाद की विशेषताओं का उपयोग नहीं करना चाहिए जो आपको होस्टिंग भाषा (जैसे पर्ल के e
संशोधक) में कोड को लागू करने की अनुमति देता है ।
आप इस चुनौती से पहले मौजूद किसी भी रेगेक्स स्वाद का उपयोग कर सकते हैं, लेकिन कृपया स्वाद निर्दिष्ट करें।
यह मत समझो कि regex को एंकरिंग किया गया है, जैसे कि यदि आप Python का उपयोग कर रहे हैं, तो मान लें कि आपका regex re.search के साथ प्रयोग किया गया है न कि re.match के साथ। आपका रेगेक्स वैध समतावादी तार के लिए पूरे स्ट्रिंग से मेल खाना चाहिए और अमान्य तारों के लिए कोई मिलान नहीं होना चाहिए। आप अपनी इच्छानुसार कई कैप्चरिंग समूहों का उपयोग कर सकते हैं।
आप मान सकते हैं कि इनपुट हमेशा दो या दो से अधिक ASCII वर्णों का एक स्ट्रिंग होगा जिसमें कोई भी लाइन-टर्मिनेटर नहीं होगा।
यह रेगेक्स गोल्फ है, इसलिए बाइट्स में सबसे छोटा रेगेक्स जीतता है। यदि आपकी भाषा को /.../
नियमित अभिव्यक्तियों को निरूपित करने के लिए सीमांकक (आमतौर पर ) की आवश्यकता होती है , तो परिसीमनकर्ता स्वयं को न गिनें। यदि आपके समाधान में संशोधक की आवश्यकता है, तो प्रति संशोधक एक बाइट जोड़ें।
मानदंड
यह अच्छा ol 'फ़ैशन वाला गोल्फ है, इसलिए दक्षता को भूल जाओ और अपने रेगेक्स को यथासंभव छोटा करने की कोशिश करो।
कृपया उल्लेख करें कि आपने कौन सा रेगेक्स फ्लेवर इस्तेमाल किया है और यदि संभव हो तो, एक्शन में अपनी अभिव्यक्ति का ऑनलाइन डेमो दिखाने वाला लिंक शामिल करें।
banana
समतावादी।