0

我想创建一个正则表达式,它将根据以下条件匹配并返回:

1) 我有 N 个用户输入的搜索词

2)我有一段文字。

3)我想返回用户输入的所有搜索词的所有出现的列表以及周围的上下文。我认为 (\w+\W+){,4}(", ")(\W+\w+){,4} 可能有效。

4) 我根本不知道如何使用 RegexKitLite。我是否调用 RegexKitLite 类?还是它以某种方式与 NSString 接口?

4

1 回答 1

1

RegexKitLite在 NSString 上定义了一个类别。要获取与模式匹配的子字符串数组,请使用componentsMatchedByRegex:,如文档的“创建每个匹配的数组”部分所示。

NSArray *words = [NSArray arrayWithObjects:@"brown",@"lazy",nil];
NSString *pattern = [NSString stringWithFormat:@"(\\w+\\W+){0,4}(%@)(\\W+\\w+){0,4}",[words componentsJoinedByString:@"|"]];
NSString *text = @"the quick brown fox jumped over the lazy dog";
NSArray *matches = [text componentsMatchedByRegex:pattern];
于 2010-03-13T22:04:26.823 回答