2011-08-20 7 views
5

मैं कैसे जांच सकता हूं कि स्ट्रिंग में ऑब्जेक्टिव-सी में अंग्रेजी अक्षरों (ए के माध्यम से ज़ेड) है या नहीं? PHP में, इसके लिए preg_match विधि है।यह जांचने के लिए कि क्या किसी स्ट्रिंग में अंग्रेज़ी अक्षरों (ए-जेड) हैं?

+2

* इसमें शामिल हैं * या * केवल * है? –

उत्तर

13

एक दृष्टिकोण नियमित अभिव्यक्तियों का उपयोग करना होगा - NSRegularExpression कक्षा। निम्नलिखित दर्शाता है कि आप किसी भी अंग्रेजी अक्षरों का पता कैसे लगा सकते हैं, लेकिन पैटर्न को केवल तभी मिलान किया जा सकता है जब संपूर्ण स्ट्रिंग में ऐसे अक्षर हों। कुछ ^[a-zA-Z]*$ की तरह।

NSRegularExpression *regex = [[[NSRegularExpression alloc] 
    initWithPattern:@"[a-zA-Z]" options:0 error:NULL] autorelease]; 

// Assuming you have some NSString `myString`. 
NSUInteger matches = [regex numberOfMatchesInString:myString options:0 
    range:NSMakeRange(0, [myString length])]; 

if (matches > 0) { 
    // `myString` contains at least one English letter. 
} 

वैकल्पिक रूप से, आप एक NSCharacterSet पात्रों में आपकी रुचि है युक्त निर्माण और प्रयोग NSString के rangeOfCharacterFromSet: किसी एक की पहली घटना को खोजने के लिए कर सकते हैं। मुझे ध्यान रखना चाहिए कि इस विधि को स्ट्रिंग में केवल पहला ऐसा चरित्र मिलता है। शायद आप के बाद क्या नहीं हो।

अंत में, मुझे लगता है कि आप एन्कोडिंग के साथ कुछ कर सकते हैं, लेकिन इस विचार को नहीं दिया है। शायद यह निर्धारित करें कि ASCII (canBeConvertedToEncoding: का उपयोग करके) का उपयोग करके स्ट्रिंग का प्रतिनिधित्व किया जा सकता है और फिर संख्याओं/प्रतीकों की जांच करें?

ओह, और आप हमेशा स्ट्रिंग पर फिर से सक्रिय हो सकते हैं और प्रत्येक चरित्र की जांच कर सकते हैं! :)

0

आप NSRegularExpression कक्षा उपयोग कर सकते हैं (वर्ग पर एप्पल के प्रलेखन here देखी जा सकती है)

1

तुम भी NSCharacterSet का उपयोग करें और rangeOfCharacterFromSet इस्तेमाल कर सकते हैं: अगर लौटे NSRange स्ट्रिंग की पूरी रेंज है देखने के लिए विधि। characterSetWithRange अपने चरित्र सेट को शुरू करने के लिए एक अच्छी जगह होगी।

4

आप सरल NSPredicate परीक्षण का उपयोग कर सकते हैं।

NSString *str = @"APPLE"; 
NSString *regex = @"[A-Z]+"; 
NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
BOOL result = [test evaluateWithObject:str]; 
संबंधित मुद्दे