/ रूबी में रेगेक्स डबल कैरेक्टर प्रवेश - रूबी, रेगेक्स

रुबी में रूगेक्स डबल कैरेक्टर प्रवेश - रूबी, रेगेक्स

मुझे एक से अधिक अवधि की अनुमति नहीं देनी है (.) स्ट्रिंग इनपुट में। रुबी रेगेक्स का उपयोग करके इसे करने का सबसे अच्छा तरीका क्या है?

टिप्पणियों का जवाब:

मैं ईमेल पंजीकरण के दौरान ईमेल पते में केवल एक अवधि के इनपुट को सीमित करना चाहता हूं। मेरे पास ईमेल इनपुट के लिए मूल ईमेल regex है। मेरा आश्चर्य है, अगर यह सीमित करने के लिए संभव है (.) खुद रेगेक्स के माध्यम से, या मुझे रूबी पुस्तकालयों का उपयोग करना चाहिए।

हाँ, यह एक नौसिखिया सवाल है।

नियमित अभिव्यक्ति इस तरह है

/A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i

केवल एक अवधि को इसके किसी भी भाग के अंदर कैसे अनुमति दें?

उत्तर:

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

मान लें कि आप भाग में सबसे अधिक अवधि में मतलब है@ से पहले, सैद्धांतिक रूप से निम्नलिखित रेगेक्स के साथ ऐसा करना संभव होगा (यह किसी बिंदु को पहले या अंतिम चरित्र के रूप में अनुमति नहीं देता है, और कोई अन्य सत्यापन नहीं करता है):

^[^.]+(.[^.]+)?$

उपरोक्त रेगेक्स केवल पहले भाग को संभालता है@, आपको "शेष रेगेक्स स्वयं को जोड़ना होगा। यह मूल रूप से 1 या अधिक गैर-अवधि के चरित्र के समूह से मेल खाता है, उसके बाद अवधि के वैकल्पिक समूह और उसके बाद 1 या अधिक गैर-अवधि वाले वर्ण होते हैं।

मैं हालांकि उत्सुक हूं कि आप क्यों सीमित करना चाहते हैंअपने ई-मेल पते में सबसे अधिक अवधि वाले उपयोगकर्ताओं को पंजीकरण ... यह एक समझदार प्रतिबंध की तरह प्रतीत नहीं होता है, क्योंकि उपयोगकर्ताओं के वैध रूप से उनके पते में 1 से अधिक अवधि के लिए यह यथार्थवादी है।