正则表达式

用法。常用正则表达式。详细用法 


//正则表达式:记录文本规则的代码

//常用的正则表达式的地方:登录,密码等格式的正确性.注意:正则只能判断是否符合规则,不能判断输入信息的有效性

//使用正则表达式判断某个字符串是否符合当前规则

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}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容