用法。常用正则表达式。详细用法
//正则表达式:记录文本规则的代码
//常用的正则表达式的地方:登录,密码等格式的正确性.注意:正则只能判断是否符合规则,不能判断输入信息的有效性
//使用正则表达式判断某个字符串是否符合当前规则
NSString *testStr =@"@明月几时有#千里共婵娟# http://www.now.com";
//正则表达式
NSString *pattern =@"(@\\w+)|(#\\w+#)|(http(s)?://([A-Za-z0-9._-]+(/)?)*)";
NSError *error =nil;
//根据正则表达式创建正则对象
//第一个参数:正则表达式
//第二个参数:正则选项,填regularExpressionWithPattern或者0
//第三个参数:返回的错误信息
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
//正则返回参数,返回的参数是一个数组,数组中的元素类型是NSTextCheckingResult
//第一个参数:被搜索的字符串
//第二个参数:选项,一般填NSMatchingReportProgress或者直接填0
//第三个参数:搜索范围NSMakeRange(0, testStr.length):搜索整个字符串
NSArray *resultArray = [regular matchesInString:testSt roptions:NSMatchingReportProgress range:NSMakeRange(0, testStr.length)];
[resultArray enumerateObjectsUsingBlock:^(NSTextCheckingResult *_Nonnullobj,NSUIntegeridx,BOOL *_Nonnullstop) {
//获取匹配的字符串的范围
NSRange range = obj.range;
NSString *str = [testStr substringWithRange:range];
NSLog(@"%@",str);
}];
常用的正则表达式
/**
*手机号码:
* 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]
*移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
*联通号段: 130,131,132,155,156,185,186,145,176,1709
*电信号段: 133,153,180,181,189,177,1700
*/
NSString *MOBILE =@"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\\d{8}$";
/**
*中国移动:China Mobile
* 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
*/
NSString *CM =@"(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)";
/**
*中国联通:China Unicom
* 130,131,132,155,156,185,186,145,176,1709
*/
NSString *CU =@"(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)";
/**
*中国电信:China Telecom
* 133,153,180,181,189,177,1700
*/
NSString *CT =@"(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)";
/**
25 *大陆地区固话及小灵通
26 *区号:010,020,021,022,023,024,025,027,028,029
27 *号码:七位或八位
28 */
// NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
邮箱:
@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{1,5}"
判断URL
@"(@\\w+)|(#\\w+#)|(http(s)?://([A-Za-z0-9._-]+(/)?)*)"
判断## @ URL
@"(@([\u4e00-\u9fa5A-Z0-9a-z(é|ë|ê|è|à|â|ä|á|ù|ü|û|ú|ì|ï|î|í)._-]+))|(#[\u4e00-\u9fa5A-Z0-9a-z(é|ë|ê|è|à|â|ä|á|ù|ü|û|ú|ì|ï|î|í)._-]+#)|(%s*r)+|(http(s)?://([A-Z0-9a-z._-]*(/)?)*)"
表情正则
@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+]"
手机号码
[0-9]{11,11}