我有以下代码可以使用:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[a-cA-C2][m-oM-O][a-cA-C2]" options:0 error:NULL];
NSString *str = @"Ana";
NSTextCheckingResult *match1 = [regex firstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
NSLog(@"check is exist: %@", [str substringWithRange:[match1 rangeAtIndex:0]]);
以下是我的问题:
1.有没有办法可以用NSMutableArray更改NSString并将NSTextCheckingResult保存在名为filterArray的NSMutableArray中?
2.如何在TextField中显示匹配值?
答案 0 :(得分:0)
如果我正确理解你的问题, 你想使用NSArray的字符串,并接收每个字符串匹配结果的NSArray。
所以,1:
NSArray *arrayOfStrings = /* Your array */;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[a-cA-C2][m-oM-O][a-cA-C2]" options:0 error:NULL];
NSMutableArray *filterArray = [NSMutableArray array];
[arrayOfStrings enumerateObjectsUsingBlock:^(NSString * str, NSUInteger idx, BOOL * stop) {
NSTextCheckingResult *match = [regex firstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
if (match) {
[filterArray addObject:match];
}
else {
[filterArray addObject:[NSNull null]];
}
NSLog(@"String #%i. check is exist: %@",idx, [str substringWithRange:[match rangeAtIndex:0]]);
}];
2:要突出显示字符串的范围,您需要使用NSAttributedString。请看这个问题的答案如何:) How do you use NSAttributedString? 形成属性字符串后,将其设置为textfield:
NSAttributedString * attributedString;
UITextField *textField;
[ttextField setAttributedText:attributedString];