मुझे आज पूछा गया कि स्ट्रिंग की सूची लेने के लिए लाइब्रेरी थी और केवल उन तारों से मेल खाने के लिए सबसे कुशल रेगेक्स की गणना करने के लिए। मुझे लगता है कि यह एक NP Complete problem है, लेकिन मुझे लगता है कि हम इस क्षेत्र को थोड़ा सा परिष्कृत कर सकते हैं।रेगेक्स या पैटर्न को सरल बनाना
मैं कैसे उत्पन्न करूं और को अपने नेटवर्क पर सभी होस्टों के बड़े सेट से होस्ट के सबसेट से मिलान करने के लिए एक रेगेक्स को सरल बना सकता है? (यह जानकर कि मुझे सबसे कुशल regex नहीं मिल सकता है।)
पहला कदम आसान है। निम्नलिखित सूची से;
- appserver1.domain.tld
- appserver2.domain.tld
- appserver3.domain.tld
मैं जोड़ सकते हैं और उन्हें
appserver1\.domain\.tld|appserver2\.domain\.tld|appserver3\.domain\.tld
में भाग और मुझे पता है
में रेगेक्स को मैन्युअल रूप से सरल कैसे करेंappserver[123]\.domain\.tld
वहां से मैं मेजबान की पूरी सूची के खिलाफ उस पैटर्न का परीक्षण कर सकता हूं और सत्यापित कर सकता हूं कि यह केवल चयनित 3 होस्ट से मेल खाता है। मुझे नहीं पता कि सरलीकरण प्रक्रिया को स्वचालित कैसे करें। क्या कोई पुस्तकालय है (पर्ल, जावास्क्रिप्ट या सी # में) या सामान्य प्रथाएं?
धन्यवाद
अद्यतन मैं कुछ भयानक पर्ल मॉड्यूल मिल गया लेकिन मैं साथ ही साथ एक सामने अंत समाधान अच्छा लगेगा। इसका मतलब जावास्क्रिप्ट है। मैंने चारों ओर खोज की है लेकिन किसी ने जेएस को पर्ल मॉड्यूल पोर्ट नहीं किया है और मैं इस प्रकार की लाइब्रेरी की खोज करने के लिए भाषा खोजने में असफल रहा हूं।
अच्छा लगता है! मुझे आश्चर्य है कि सी # समुदाय क्या कर सकता है;) –
बहुत बढ़िया! मैं वास्तव में उम्मीद कर रहा हूं कि यह जेएस में भी मौजूद है। – reconbot