सकारात्मक अग्रदर्शी आप जो खोज रहे हैं है। रेगुलर एक्सप्रेशन से इस तरह दिखता है:
(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+
यहाँ, (?=.*[A-Za-z])
सकारात्मक अग्रदर्शी जो दावा है अपने स्ट्रिंग कम से कम एक चरित्र, और (?=.*[0-9])
के रूप में दावा है कि यह कम से कम एक अंकों किया है। यह ध्यान रखना महत्वपूर्ण है कि सकारात्मक लुकहेड एक मैच नहीं लौटाता है, बल्कि यह दावा करता है कि कोई मिलान मौजूद है या नहीं। इसलिए, आपको पिछले रेगेक्स को "जोर देकर कहना चाहिए कि इसमें कम से कम एक चरित्र है; जोर दें कि इसमें कम से कम एक अंक है; अब हम जानते हैं कि दावा पारित हो गए हैं, बस अल्फान्यूमेरिक वर्णों की जांच करें"।
यह बहुत रोचक है क्योंकि यह आपको अपने रेगेक्स को बहुत जटिल बनाये बिना आसानी से आपके आवेदन की सत्यापन आवश्यकताओं को गठबंधन करने की अनुमति देता है। उदाहरण के लिए, यदि आप अब स्ट्रिंग की आवश्यकता होती है बिल्कुल 20 वर्ण के लिए, तो आप सिर्फ इसलिए की तरह एक नया सकारात्मक अग्रदर्शी अभिकथन, जोड़ने की जरूरत:
(?=[A-Za-z0-9]{20})(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]+
आशा है कि यह मदद करता है!
स्रोत
2009-08-22 23:48:48
डाउनवॉटेड? वास्तव में? –
@Paco: मुझे पता नहीं था कि स्टैक ओवरफ़्लो केवल कठिन प्रश्नों की अनुमति देता है! – LukeH
मैं ल्यूक से सहमत हूं। स्टैक ओवरफ्लो को अनुभवी पेशेवर के लिए बाइटकोड को कम करने में समस्या नहीं है, या 'डब्लूएमआई दस्तावेज कहां है'। –