iOS-NSRegularExpression匹配中文

NSRegularExpression用于进行字符串的正则匹配,要进行中文匹配,可以利用Unicode字符进行匹配。

匹配所有中文

1
2
3
4
5
6
7
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:@"[\u4e00-\u9fa5]*" options:NSRegularExpressionCaseInsensitive error:nil];

NSString *string = @"test老司机test";
NSArray<NSTextCheckingResult *> *array = [expression matchesInString:string options:NSMatchingReportProgress range:NSMakeRange(0, string.length)];
for(NSTextCheckingResult *result in array){
NSLog(@"%@", [string substringWithRange:result.range]);
}

结果:

1
老司机

匹配特定的中文

1
2
3
4
5
6
7
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:@"\u7b2c.*\u9996" options:NSRegularExpressionCaseInsensitive error:nil];

NSString *string = @"test第一百零一首test";
NSArray<NSTextCheckingResult *> *array = [expression matchesInString:string options:NSMatchingReportProgress range:NSMakeRange(0, string.length)];
for(NSTextCheckingResult *result in array){
NSLog(@"%@", [string substringWithRange:result.range]);
}

结果:

1
第一百零一首