我在字符串中搜索字符串 “更长” :“这是长句子。但可以< EM>更长的时间。“
我试图获得原始搜索词中出现的所有单词的范围。在上面的场景中,它将是 “long” 和 “更长” 的范围。如果可以使用正则表达式,请告诉我吗?
我正在使用的代码:
NSMutableArray *arrayOfAllRanges = [[NSMutableArray alloc] init];
NSString *completeString = @"This is a long sentence. But can be longer.";
NSString *searchedTerm = @"longer";
NSRange range = NSMakeRange(0, completeString.length);
NSString *pattern = [NSString stringWithFormat:@"(%@)", searchedTerm];
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
[expression enumerateMatchesInString:completeString options:0 range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
{
NSRange foundRange = [result rangeAtIndex:0];
[arrayOfAllRanges addObject:[NSValue valueWithRange:foundRange]];
}];
NSLog(@"Array of all ranges %@", arrayOfAllRanges);
上面的代码只返回“more”与正则表达式“(更长)”的出现次数,但我正在寻找找到文本的替换正则表达式< em>“long”。