2010-07-02 9 views
5

मैं प्रथम नाम सत्यापन के लिए नियमित अभिव्यक्ति लिखना चाहता हूं। नियमित अभिव्यक्ति में सभी अक्षर (लैटिन/फ्रेंच/जर्मन वर्ण इत्यादि) शामिल होना चाहिए। हालांकि मैं इससे संख्याओं को बाहर करना चाहता हूं और - भी अनुमति देना चाहता हूं। तो मूल रूप से यह \w (शून्य) संख्याएं (प्लस) - है।रेल में रेगेक्स मिलान करने के लिए [ w] और "-" लेकिन संख्या

कृपया मदद करें।

+0

अपने रूबी रेगेक्स का परीक्षण करने के लिए http://rubular.com सर्वोत्तम संसाधन भी आज़माएं। –

उत्तर

5

जहाँ तक मुझे पता है, रूबी यूनिकोड गुणों का समर्थन नहीं करता (कम से कम संस्करण 1.8 तक) है, तो आप

^(?:[^\W\d_]|-)+$ 

स्पष्टीकरण उपयोग करने की आवश्यकता हो सकती है: [^\W\d_] मैचों कोई पत्र (शाब्दिक अर्थ है "मैच एक चरित्र जो न तो एक गैर-अल्फान्यूमेरिक वर्ण, एक अंक, या अंडरस्कोर ") है। इस मामले में, उपयोग करने के लिए सही नकारात्मक एक डबल नकारात्मक है। चूंकि हम एक नकारात्मक चरित्र वर्ग का उपयोग कर रहे हैं, इसलिए हमें - को वैकल्पिक रूप से अनुमति देने की आवश्यकता है।

चेतावनी:regular-expressions.info से यह रूबी की तरह दिखता है केवल \w आशुलिपि के साथ ASCII वर्ण से मेल खाता है, तो के रूप में इरादा इस regex काम न करे। मेरे पास रूबी स्थापित नहीं है, लेकिन rubular.com पर यह regex सही ढंग से काम कर रहा है।

वैकल्पिक समाधान

^[[:alpha:]-]+$ 

regular-expressions.info करने और RegexBuddy, लेकिन rubular.com पर यह काम नहीं कर रहा अनुसार गैर- ASCII वर्ण से मेल खाना चाहिए।

+0

शायद यह ruby ​​विशिष्ट नहीं है? –

+0

@ श्रीपाद के: आपका क्या मतलब है? –

0

आप अपने सत्यापन समस्या के लिए एक गहरे लाल रंग का विशिष्ट समाधान तो आप इस का उपयोग कर सकते हैं:

http://rubular.com/r/VrAIB4TkwJ

मैं इस एक समुदाय बना दिया है:

^[\D-]+$ 

आप इस स्थायी लिंक यहाँ जाँच कर सकते हैं विकी ताकि हर कोई इसे आज़मा सकें और यदि आवश्यक हो तो रेगेक्स को बेहतर कर सकता है।

उम्मीद है कि इससे मदद मिलती है। चीयर्स :)

+0

वास्तव में नहीं। यह सबकुछ लेकिन अंकों के साथ मेल खाता है, जिसमें '!" § $% और 'जैसी चीजें शामिल हैं - दिनेश की जरूरत नहीं है। –

संबंधित मुद्दे