Intereting Posts
Xcode 6 में तदर्थ वितरण के लिए प्रावधान प्रोफाइल का चयन करना ऑफ़लाइन होने पर सटीक समय का पता लगाना यूटेक्सफील्ड में फोन नंबर की पुष्टि करना ऑटो लेआउट बाधाओं के साथ एनीमेशन के साथ एक दृश्य को स्थानांतरित करने के लिए IOS पर हैं SVPullToRefresh खाली UICollectionView पर खींच नहीं सकता AVAudioTime के साथ भविष्य में प्लेबैक के लिए एक ऑडियो फ़ाइल को शेड्यूल करना "_sqlite3_key" आर्किटेक्चर i386 के लिए नहीं मिला प्रतीक (ओं) Xmppframework मॉड्यूल libxml नहीं बना सका ग्रैंड सेंट्रल डिस्पेच एसिंक बनाम सिंक त्रुटि आईटीएमएस-9 0168: "आपके द्वारा अपलोड की गई द्विपदीय अमान्य थी।" AdViewDidReceiveAd पर कार्रवाई करने के लिए GADBannerViewDelegate का उपयोग कैसे करें जब यूटिडक्विव में श्रुतलेख समाप्त हो गया है, तो जानें जहां iPhone सिम्युलेटर एसक्लीट डेटाबेस को सहेजता है ऐप्पल पुश अधिसूचना – अंत उपयोगकर्ता ने सीए के रूप में कार्य करने की कोशिश की DidReceiveAuthenticationChallenge में SSL प्रमाणपत्र फ़ील्ड पुनर्प्राप्त करें

स्ट्रिंग के साथ सटीक मिलान NSPredicate

मेरे पास इस तरह की एक NSPredicate है:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"entity.name CONTAINS %@", myString]; 

लेकिन वह उस स्ट्रिंग को कुछ भी वापस लौटा देगा। उदाहरण के लिए: यदि मेरी इकाई.नाम है जहां:

 text texttwo textthree randomtext 

और myString text था तो उन सभी स्ट्रिंग्स मैच होंगे। मुझे यह इतना पसंद है कि यदि मेरा myString text तो यह केवल प्रथम वस्तु को नाम के text साथ वापस लौटाएगा और अगर myString को randomtext से randomtext जाएगा तो वह चौथे ऑब्जेक्ट को नाम से randomtext वापस randomtext । मैं इसे केस असंवेदनशील होने के लिए भी देख रहा हूं और यह सफेद स्थान की उपेक्षा करता है

Solutions Collecting From Web of "स्ट्रिंग के साथ सटीक मिलान NSPredicate"

इसे ऐसा करना चाहिए:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"entity.name LIKE[c] %@", myString]; 

LIKE तार के साथ मेल खाता है? और * वाइल्डकार्ड के रूप में [c] इंगित करता है कि तुलना असंवेदनशील होने चाहिए।

यदि आप नहीं चाहते हैं? और * को वाइल्डकार्ड के रूप में माना जाएगा, आप LIKE बजाय == उपयोग कर सकते हैं:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"entity.name ==[c] %@", myString]; 

एनएसपीडिकेट प्रॉजेक्ट फॉर्मेट स्ट्रिंग सिंटैक्स प्रलेखन में अधिक जानकारी

आप अपनी अभिव्यक्ति के साथ नियमित अभिव्यक्ति मैचर का उपयोग कर सकते हैं, जैसे:

 NSString *str = @"test"; NSMutableString *arg = [NSMutableString string]; [arg appendString:@"\\s*\\b"]; [arg appendString:str]; [arg appendString:@"\\b\\s*"]; NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF matches[c] %@", arg]; NSArray *a = [NSArray arrayWithObjects:@" test ", @"test", @"Test", @"TEST", nil]; NSArray *b = [a filteredArrayUsingPredicate:p]; 

उपरोक्त कोड का टुकड़ा एक नियमित अभिव्यक्ति बनाता है जो शुरुआत में और / या अंत में, वैकल्पिक शब्द के साथ स्ट्रिंग को "शब्द सीमा" मार्करों \b घिरे लक्ष्य शब्द के साथ मेल करता है। matches बाद [c] अर्थ है "मैच केस-इनसेन्सिटिव"

यह उदाहरण स्ट्रिंग्स की एक सरणी का उपयोग करता है; इसे अपने वातावरण में काम करने के लिए, SELF को entity.name साथ entity.name