要枚举字符串中的单词,您应该使用-[NSString enumerateSubstringsInRange:options:usingBlock:]
withNSStringEnumerationByWords
和NSStringEnumerationLocalized
。列出的所有其他方法都使用一种识别可能不适合区域设置或不符合系统定义的单词的方法。例如,由逗号分隔但不是空格的两个单词(例如“foo,bar”)不会被任何其他答案视为单独的单词,但它们在 Cocoa 文本视图中。
[aString enumerateSubstringsInRange:NSMakeRange(0, [aString length])
options:NSStringEnumerationByWords | NSStringEnumerationLocalized
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
if ([substring rangeOfString:@"ll" options:NSCaseInsensitiveSearch].location != NSNotFound)
/* do whatever */;
}];
正如. -enumerateSubstringsInRange:options:usingBlock:
_ _ enclosingRange
因此,如果要替换匹配的单词,可以使用[aString replaceCharactersInRange:substringRange withString:replacementString]
.