मैं सोच रहा था कि क्या मुझे एक नियमित अभिव्यक्ति मिल सकती है जो एक स्ट्रिंग से मेल खाएगी जिसमें केवल वर्णमाला वर्ण हैं, और वह भी अकेले।
àआपकी परिभाषा के अनुसार एक वर्णमाला वर्ण है? आप किस भाषा का उपयोग कर रहे हैं?
मैं सोच रहा था कि क्या मुझे एक नियमित अभिव्यक्ति मिल सकती है जो एक स्ट्रिंग से मेल खाएगी जिसमें केवल वर्णमाला वर्ण हैं, और वह भी अकेले।
àआपकी परिभाषा के अनुसार एक वर्णमाला वर्ण है? आप किस भाषा का उपयोग कर रहे हैं?
जवाबों:
आप इनमें से किसी भी 2 प्रकार का उपयोग कर सकते हैं:
/^[A-Z]+$/i
/^[A-Za-z]+$/
ASCII वर्णमाला के इनपुट स्ट्रिंग का मिलान करने के लिए।
[A-Za-z] सभी अक्षर (लोअरकेस और अपरकेस) दोनों से मेल खाएगा।^और $यह सुनिश्चित कर लेगा कि इन वर्णमालाओं का मिलान नहीं किया जाएगा।कोड:
preg_match('/^[A-Z]+$/i', "abcAbc^Xyz", $m);
var_dump($m);
आउटपुट:
array(0) {
}
परीक्षण का मामला ओपी की टिप्पणी के लिए है कि वह केवल तभी मिलान करना चाहता है जब इनपुट में 1 या अधिक अक्षर मौजूद हों। जैसा कि आप परीक्षण मामले में देख सकते हैं कि मिलान विफल हो गया क्योंकि ^इनपुट स्ट्रिंग में था abcAbc^Xyz।
नोट: कृपया ध्यान दें कि उपरोक्त उत्तर केवल ASCII वर्णमाला से मेल खाता है और यूनिकोड वर्णों से मेल नहीं खाता है। यदि आप यूनिकोड अक्षरों का मिलान करना चाहते हैं तो उपयोग करें:
/^\p{L}+$/u
यहां, \p{L}किसी भी भाषा के किसी भी प्रकार के पत्र से मेल खाता है
\w is shorthand for A-Za-z- वास्तव में नहीं, के \wलिए आशुलिपि है[a-zA-Z0-9_]
यदि आपको गैर-ASCII वर्णमाला वर्णों को शामिल करने की आवश्यकता है, और यदि आपका regex स्वाद यूनिकोड का समर्थन करता है, तो
\A\pL+\z
सही regex होगा।
कुछ रेगेक्स इंजन इस यूनिकोड सिंटैक्स का समर्थन नहीं करते हैं लेकिन \wअल्फ़ान्यूमेरिक शॉर्टहैंड को गैर-एएससीआईआई अक्षरों से मेल खाने की अनुमति देते हैं । उस स्थिति में, आप अंकों और अंकों को घटाकर \wइस तरह से सभी वर्णमाला प्राप्त कर सकते हैं :
\A[^\W\d_]+\z
\Aस्ट्रिंग की शुरुआत में, स्ट्रिंग \zके अंत में मैच ( ^और $रूबी जैसी कुछ भाषाओं में लाइनों के शुरू / अंत में मेल खाते हैं, या यदि कुछ regex विकल्प सेट हैं)।
यह एक या अधिक वर्णमाला वर्णों से मेल खाएगा:
/^[a-z]+$/
आप इसका उपयोग कर मामले को असंवेदनशील बना सकते हैं:
/^[a-z]+$/i
या:
/^[a-zA-Z]+$/
रूबी और अन्य भाषाओं में जो ब्रैकेट के भावों में POSIX वर्ण वर्गों का समर्थन करती हैं, आप बस कर सकते हैं:
/\A[[:alpha:]]+\z/i
यह सभी यूनिकोड वर्णमाला भाषाओं में अल्फा-चार्ट से मेल खाएगा। बहुत आसान।
अधिक जानकारी: http://en.wikipedia.org/wiki/Regular_expression#Character_classes http://ruby-doc.org/core-2.0/Regexp.html
[^[:alpha]]।
[a-zA-Z] बस ठीक करना चाहिए।
आप चीट शीट का संदर्भ दे सकते हैं ।