- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *txt = @"abc123bcdabc234bcd";
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"(?<=abc)(.*?)(?=bcd)"
options:NSRegularExpressionCaseInsensitive
error:nil];
NSArray<NSTextCheckingResult *> *resultArr = [regular matchesInString:txt
options:NSMatchingReportCompletion
range:NSMakeRange(0, txt.length)];
for (NSTextCheckingResult *res in resultArr) {
NSLog(@"---%@", NSStringFromRange(res.range));
NSString *str = [txt substringWithRange:res.range];
NSLog(@"===%@", str);
}
}
输出:
---{3, 3}
===123
---{12, 3}
===234
解释正则表达式
?<=abc
表示的是abc的后面的字符串,但不包括abc。
?=bcd
表示的是bcd的前面的字符串,但不包括bcd。
()
是为了方便阅读。
网友评论