用法。常用正則表達式。詳細用法?
//正則表達式:記錄文本規則的代碼
//常用的正則表達式的地方:登錄,密碼等格式的正確性.注意:正則只能判斷是否符合規則,不能判斷輸入信息的有效性
//使用正則表達式判斷某個字符串是否符合當前規則
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(é|?|ê|è|à|a|?|á|ù|ü|?|ú|ì|?|?|í)._-]+))|(#[\u4e00-\u9fa5A-Z0-9a-z(é|?|ê|è|à|a|?|á|ù|ü|?|ú|ì|?|?|í)._-]+#)|(%s*r)+|(http(s)?://([A-Z0-9a-z._-]*(/)?)*)"
表情正則
@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+]"
手機號碼
[0-9]{11,11}