2014-07-06 90 views
1

我試圖查看NSString是否包含來自預定義字符串(A,B或C中的任何一個)的任何字符。NSPredicate測試NSString是否包含另一個NSString中的字符

我知道我能做到這一點:

NSCharacterSet *abc = [NSCharacterSet characterSetWithCharactersInString: @"ABC"]; 
NSRange range = [sequence rangeOfCharacterFromSet: abc]; 
BOOL result = (range.location != NSNotFound); 

這導致是如果輸入字符串包含至少一個A,B或C.

我想看看我是否能使用NSPredicate作爲替代,所以我一直在玩它(例如,見也在這裏:Checking to see if an NSString contains characters from a different NSString),但我總是得到NO的結果:

NSPredicate *abcPredicate = [NSPredicate predicateWithFormat: @"SELF matches 'ABC'"]; 
result = [stedPredicate evaluateWithObject: myString]; 

我試圖取代火柴包含,BU沒有幫助。

也試過:

NSPredicate *stedPredicate = [NSPredicate predicateWithFormat: @"SELF LIKE 'ABC'"]; 

我怎樣才能改變謂語爲它工作?

+0

這將檢查如果字符串包含像「ABC」這樣的子字符串,而不是「ABC」中的任何字符 –

回答

2

要檢查是否一個字符串包含任何字符A,B,或C可以使用 正則表達式括號表達式「[ABC]」:

NSPredicate *abcPredicate = [NSPredicate predicateWithFormat: @"SELF MATCHES %@", @".*[ABC].*"]; 
BOOL result = [abcPredicate evaluateWithObject: myString]; 
+0

這樣做的竅門,謝謝。 – Koen

相關問題