2010-03-16 8 views
11

क्या कोई कृपया मुझे रेस्पिक्स का उपयोग एनएसपीडिकेट के साथ करने में मदद कर सकता है?एनएसपीडिकेट और रेगेक्स

NSString *regex = @"(?:[A-Za-z0-9])"; 
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 
if ([pred evaluateWithObject:mystring]) 
{ 
    //do something 
} 

ऊपर wth mystring परीक्षण - qstring123 काम करने के लिए प्रतीत नहीं होता। मैं इसे स्थिति में प्रवेश करने की उम्मीद कर रहा हूं क्योंकि यह माना जाता है कि यह रेगेक्स से मेल खाना चाहिए।

इसके अलावा, मुझे अल्पविराम संख्याओं को अल्पविराम और रिक्त स्थान की अनुमति देने के लिए एक रेगेक्स चाहिए।

यह काम करेगा?

@"(?:[A-Za-z0-9])*(?:,[A-sa-z0-9)*(?:\s[A-sa-s0-9])" 

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

उत्तर

8

मेरे प्रयोग से, यह पूरे स्ट्रिंग के खिलाफ रेगेक्स से मिलान करने का प्रयास करता है, और एक स्ट्रिंग के अंदर मेल नहीं खाएगा।

इसलिए, regex [a-zA-Z0-9]+ काम करता है, लेकिन [a-zA-Z0-9] नहीं करता है।

इस बात को ध्यान में रखते हुए, आप अपने अल्पविराम-मिलान की भविष्यवाणी को फिर से काम करना चाहेंगे, या एक अधिक पूर्ण-विशेषीकृत रेगेक्स समाधान का उपयोग कर सकते हैं, जैसे अद्भुत आश्चर्यजनक RegexKit and RegexKitLite

+0

डुह 'मैं अंत में + चूक गया। मैं वास्तव में इस्तेमाल किया * और यह काम किया। क्या फर्क पड़ता है? – Dave

+2

'*' 0 या अधिक बार मेल खाता है, '+' 1 या अधिक बार मेल खाता है। –