首先使用系统的方法
1、匹配手机号
//
匹配电话
NSString*phone = @"13562646222";
NSRegularExpression*regexPhone = [NSRegularExpressionregularExpressionWithPattern:@"1[358]\\d{9}$"options:NSRegularExpressionCaseInsensitiveerror:nil];
NSArray*matcher = [regex matchesInString:stroptions:NSMatchingReportCompletionrange:NSMakeRange(0, str.length)];
2、匹配 数组中保存的时匹配结果 可能有多个匹配结果
NSString
*qqStr =
@"234234243"
;
// 匹配 qq
NSRegularExpression *regexQQ = [ NSRegularExpression regularExpressionWithPattern : @"[0-9]{5-6}" options : NSRegularExpressionCaseInsensitive error : nil ];
NSArray *matcherQQ = [regexQQ matchesInString :qqStr options : NSMatchingReportCompletion range : NSMakeRange ( 0 , qqStr. length )];
if (matcherQQ. count && qqStr) {
NSLog ( @"" );
} else {
NSLog ( @"" );
// 匹配 qq
NSRegularExpression *regexQQ = [ NSRegularExpression regularExpressionWithPattern : @"[0-9]{5-6}" options : NSRegularExpressionCaseInsensitive error : nil ];
NSArray *matcherQQ = [regexQQ matchesInString :qqStr options : NSMatchingReportCompletion range : NSMakeRange ( 0 , qqStr. length )];
if (matcherQQ. count && qqStr) {
NSLog ( @"" );
} else {
NSLog ( @"" );
}
3、匹配文字和表情
/*
? 0或者1个
* 0或者多个
+ 1个或者多个
*/
NSString*text = @"aasdfadsf[马到成功]asdfadsf";
NSRegularExpression *regexText = [NSRegularExpressionregularExpressionWithPattern:@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]"options:NSRegularExpressionCaseInsensitiveerror:nil];
NSArray *matcherText = [regexText matchesInString:textoptions:NSMatchingReportCompletionrange:NSMakeRange(0, text.length)];
if (matcherText.count) {
for (NSTextCheckingResult*result in matcherText) {
NSLog(@"%@---%@",NSStringFromRange(result.range),[textsubstringWithRange:result.range]);
}
} else {
NSLog(@"匹配失败");
? 0或者1个
* 0或者多个
+ 1个或者多个
*/
NSString*text = @"aasdfadsf[马到成功]asdfadsf";
NSRegularExpression *regexText = [NSRegularExpressionregularExpressionWithPattern:@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]"options:NSRegularExpressionCaseInsensitiveerror:nil];
NSArray *matcherText = [regexText matchesInString:textoptions:NSMatchingReportCompletionrange:NSMakeRange(0, text.length)];
if (matcherText.count) {
for (NSTextCheckingResult*result in matcherText) {
NSLog(@"%@---%@",NSStringFromRange(result.range),[textsubstringWithRange:result.range]);
}
} else {
NSLog(@"匹配失败");
}
4、第三方的正则匹配 需要导入libicucore.dylib 框架
并修改为 -fno-objc-arc
NSString *str = @"asdffdfaddf[asd]adsfsdf[asdf]a";
NSString *regex = @"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]";
//匹配方法
[str enumerateStringsMatchedByRegex:regexusingBlock:^(NSIntegercaptureCount, NSString *const__unsafe_unretained *capturedStrings, const NSRange *capturedRanges, volatile BOOL *conststop) {
NSLog(@"%@ %@",*capturedStrings,NSStringFromRange(*capturedRanges));
}];
//将正则匹配出来的字符串作为切割符
[str enumerateStringsSeparatedByRegex:regexusingBlock:^(NSIntegercaptureCount, NSString *const__unsafe_unretained *capturedStrings, const NSRange *capturedRanges, volatile BOOL *conststop) {
NSLog(@"%@ %@",*capturedStrings,NSStringFromRange(*capturedRanges));
}];