^写在[]外面表示是以什么开头,^写在[]里面表示这个的反意思。$表示结尾。(HM补充里有正则表达式的库)
[3578]表示或3,或5,或7,或8。\\d表示数字。{9}表示9位数。\\d*(0~N)个
\\s是空格,^\\s不是空格
match(@"17977775555", @"^1[3578]\\d{9}$");
void match(NSString *str, NSString *pattern)
{
// 创建正则表达式对象(创建匹配规则)
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
// 尝试匹配
NSArray *results = [regex matchesInString:str options:NSMatchingReportCompletion range:NSMakeRange(0, str.length)];
if (results.count == 0)
{
NSLog(@"匹配失败");
} else
{ // 匹配成功
NSLog(@"匹配成功");
for (NSTextCheckingResult *result in results)
{
NSString *range = NSStringFromRange(result.range);
NSLog(@"%@ %@", range, [str substringWithRange:result.range]);
}
}
}