2

我正在尝试匹配下面的字符串,但不幸的是它只给了我“不”的结果。任何人都可以帮忙吗?提前致谢!

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");
    }
   }];
4

2 回答 2

2

您的方法只是枚举单独的单词。“突然爆发”是两个字。

为什么不使用-rangeOfSubstring:它来查找文本是否包含某些子字符串?例如:

NSLog(@"%@",[[text mutableString] rangeOfString:findMe].location == NSNotFound ? @"nope" : @"found it");
于 2013-09-06T06:17:52.630 回答
0

enumerateSubstringsInRange 有类似的选项

NSStringEnumerationByLines
NSStringEnumerationBySentences
NSStringEnumerationByParagraphs
NSStringEnumerationByComposedCharacterSequences
NSStringEnumerationByWords

如果你有话要比较意味着它会起作用

例如

 NSString *text = @"darn thing suddenlyerupted without any warning.";
 NSString *findMe = @"suddenlyerupted";

所以你不能比较子字符串。您需要自定义块或移动到其他选项。

于 2013-09-06T06:48:11.230 回答