/ / एक विशिष्ट स्ट्रिंग को बाहर करने के लिए नियमित अभिव्यक्ति - regex, regex-negation, regex-lookarounds

एक विशिष्ट स्ट्रिंग - regex, regex-negation, regex-lookarounds को बाहर करने के लिए नियमित अभिव्यक्ति

मैं वर्तमान में एक पहचान प्रबंधन समाधान लागू कर रहा हूं जो उपयोगकर्ताओं को उनके सभी एंडपॉइंट खातों को प्रबंधित करने की क्षमता प्रदान करेगा।

वर्तमान में, हमारी कंपनी पासवर्ड नीति डिफ़ॉल्ट विंडोज आवश्यकताओं से मेल खाती है: इसमें दूसरों के बीच या तो एक संख्या या विशेष चरित्र होना चाहिए।

दुर्भाग्यवश, नई प्रणाली की पासवर्ड नीति में, हमें एक संख्या, विशेष, या दोनों की आवश्यकता हो सकती है, लेकिन "इनमें से कोई भी नहीं"। हालांकि, नई प्रणाली नियमित अभिव्यक्ति द्वारा सत्यापन की अनुमति देती है।

वर्तमान में, हमारे पास निम्न रेगेक्स को डिस्लो करने के लिए यह सेट है:

.*[pP][aA4][sS$]{2}[wW][oO0][rR][dD].*

यह बहुत अच्छी तरह से काम करता है। हालांकि, हम इसे किसी भी अंक या विशेष को अनुमति देने के लिए बदलना चाहते हैं, जबकि पिछले को भी अस्वीकार कर रहे हैं। मैंने जो कोशिश की है वह यहां है:

((?=.*d.*)|(?=.*[-""!#$%&()*+,./:;<=>?@[]^_`{|}~\].*))(?!.*[pP][aA4][sS$]{2}[wW][oO0][rR][dD].*)

हालांकि, मैं इसे काम करने के लिए नहीं मिल सकता। अंक / विशेष समूह ठीक काम करता है, हालांकि शब्द समूह नहीं करता है। यह देखता है कि स्ट्रिंग के END पर "पासवर्ड" या कुछ भिन्नता का उपयोग किया जाता है, लेकिन शुरुआत में नहीं ...

कोई सुझाव? प्रणाली मानक (पर्ल-स्टाइल) नियमित अभिव्यक्तियों का उपयोग करती है।

उत्तर:

जवाब के लिए 0 № 1

कुछ चालबाजी के माध्यम से अपने regexes गठबंधन संभव है।

^([^pPd!-""#$%&()*+,./:;<=>?@[]^_`{|}~\]|[pP](?![aA4][sS$]{2}[wW][oO0][rR][dD]))*(d|[-""!#$%&()*+,./:;<=>?@[]^_`{|}~\])([^pPd!-""#$%&()*+,./:;<=>?@[]^_`{|}~\]|[pP](?![aA4][sS$]{2}[wW][oO0][rR][dD]))*$

मैंने सब्लिमे टेक्स्ट एडिटर में सफलतापूर्वक इसका परीक्षण किया है।