我正在尝试匹配下面的字符串但不幸的是它只给了我“nope”作为结果。有人可以帮忙吗?提前谢谢!
NSMutableAttributedString *text = [NSMutableString stringWithString:@"darn thing suddenly erupted without any warning.";
NSString *findMe = @"suddenly erupted";
[text enumerateSubstringsInRange:NSMakeRange(0, [text length]) options:NSStringEnumerationByWords usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
if ([findMe isEqualToString:substring] ) {
NSLog(@"found it");
}
else {
NSLog(@"nope");
}
}];
答案 0 :(得分:2)
您的方法只是枚举单独的单词。 “突然爆发”是两个字。
为什么不使用-rangeOfSubstring:
来查找文本是否包含某些子字符串?例如:
NSLog(@"%@",[[text mutableString] rangeOfString:findMe].location == NSNotFound ? @"nope" : @"found it");
答案 1 :(得分:0)
enumerateSubstringsInRange有像
这样的选项NSStringEnumerationByLines
NSStringEnumerationBySentences
NSStringEnumerationByParagraphs
NSStringEnumerationByComposedCharacterSequences
NSStringEnumerationByWords
如果你有比较的话意味着它会起作用
e.g
NSString *text = @"darn thing suddenlyerupted without any warning.";
NSString *findMe = @"suddenlyerupted";
所以你不能比较子字符串。您需要自定义块或移动到其他选项。