यदि मेरे पास नियमित अभिव्यक्तियों की एक सूची है, तो क्या यह निर्धारित करने का एक आसान तरीका है कि उनमें से कोई भी एक ही स्ट्रिंग के लिए एक मैच वापस नहीं करेगा?परस्पर अनन्य नियमित अभिव्यक्ति
है, सूची यदि और केवल यदि सभी स्ट्रिंग्स के लिए सूची के एक आइटम की एक अधिकतम पूरी स्ट्रिंग के मिलान होगा मान्य है।
ऐसा लगता है कि यह बहुत मुश्किल (शायद असंभव?) निश्चित साबित करने के लिए किया जाएगा, लेकिन मैं इस विषय पर किसी भी काम को खोजने के लिए प्रतीत नहीं कर सकते हैं।
कारण मैं पूछता हूं कि मैं एक टोकनज़र पर काम कर रहा हूं जो regexes स्वीकार करता है, और मैं यह सुनिश्चित करना चाहता हूं कि एक समय में केवल एक टोकन इनपुट के सिर से मेल खा सके।
संभावित डुप्लिकेट [आप कैसे पता लगा सकते हैं कि तारों में दो नियमित अभिव्यक्ति ओवरलैप हो सकती हैं?] (Http://stackoverflow.com/questions/1849447/how-can-you-detect-if-two-regular -expressions-ओवरलैप-इन-द-तार-वे-कर सकते हैं-चटाई) –
मुझे लगता है मैं गलत समझा। आपका मतलब है कि दो दिए गए नियमित अभिव्यक्ति * किसी भी * इनपुट स्ट्रिंग के लिए पूरी तरह पारस्परिक रूप से अनन्य होनी चाहिए? यानी, संभवतः चार-बाइट तारों के 2^32 में से एक रेगेक्स केवल एक संभावना से मेल खा सकता है?क्या यह कहने जैसा नहीं है: इस सटीक स्ट्रिंग से मेल खाते हैं? – Abel
मेरा मतलब है कि रेगेक्स का चौराहे शून्य होना चाहिए। कोई स्ट्रिंग 1 से अधिक regex से मेल खाता है। – captncraig