2015-04-03 223 views
-1

注意:字符串包含字,而不是字符串。我知道rangeOfString方法。查找字符串是否包含字

示例:“由加州苹果公司设计”不包含“应用程序”一词,但包含“Apple”。

+0

http://stackoverflow.com/questions/1135524/iphone-whole-word-search有一些不同的要求,而接受的答案实际上并没有做用户想要的。在这种情况下,区分大小写并不重要。 – 2015-04-03 10:20:15

回答

2

在您的正则表达式模式中使用字边界\\b来匹配整个单词。

这里是一个example code

NSString *myText = @"Designed by Apple in California"; 
NSError *error = nil; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\bApple\\b" options:NSRegularExpressionCaseInsensitive error:&error]; 
NSRange textRange = NSMakeRange(0, myText.length); 
NSRange matchRange = [regex rangeOfFirstMatchInString:myText options:0 range:textRange]; 
if (matchRange.location != NSNotFound) 
    NSLog(@"There is a match!"); 
else 
    NSLog(@"No match!"); 

随着@"\\bApple\\b",你会得到一个 “有一场比赛!”信息。用@"\\bApp\\b",你会得到“不匹配!”。

+0

很好的回答!注意:它会和'Apple'这样的句子匹配,比如'(Apple - ',这对我来说很棒。 – user1561346 2015-04-03 10:18:49

相关问题