用于查找原始搜索词中出现的所有字符串的正则表达式

时间:2015-09-24 18:40:05

标签: ios objective-c regex nsregularexpression

我在字符串中搜索字符串 “更长” “这是句子。但可以< 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”。

0 个答案:

没有答案