正则表达式和其在OC中的的使用
正则表达式和其在OC中的的使用最近对正则表达式(regex)很感兴趣,于是了解了一下,正则表达式是所有语言都通用的一套查找字符串的方法,在网上找了很多入门教程,也看了很多的教程,也能写出来简单的正则表达式了,但是好像还是似懂非懂的. 学习正则表达式,看再多的教程,都不如自己认认真真的做练习学习的快. 好吧,我来总结一下,供自己以后参考: 1. 先贴几个表,正则表达式经常用到的字符及含义表一 : 常用的元字符
表二 : 常用的限定符
表三 : 常用的反义代码
表四 : 懒惰限定符 默认情况下,正则表达式的匹配是贪婪的匹配,比如,对字符串 "abxnssdb" 使用正则表达式 "w{3,6}" 进行匹配,可以匹配到一个结果,结果是前六个字符,匹配范围是3---6,但是默认会匹配尽可能多的字符.
2. 常用的正则表达式
3. 正则表达式例子
4. OC中的正则表达式4.1 OC中正则表达式基本使用下面示例代码,是正则表达式在oc中的使用方法,例子是验证指定字符串是否是ip地址. void test1() { NSString *str = @"1.168.0.255"; NSString *pattern = @"^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$"; // NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil]; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil]; NSArray *results = [regex matchesInString:str options:0 range:NSMakeRange(0,str.length)]; NSLog(@"result count : %zd",results.count); NSLog(@"results = %@",results); } 4.2 OC中匹配emoji表情OC匹配emoji正则表达式如下: 关于Unicode8,Unicode16,Unicode32详见 维基百科-Unicode. char data_utf8[]={0xE6,0xB1,0x89,0xE5,0xAD,0x97};//UTF-8编码 char16_t data_utf16[]={0x6C49,0x5B57}; //UTF-16编码 char32_t data_utf32[]={0x00006C49,0x00005B57};//UTF-32编码 4.3 前瞻操作符(?!)"</?(?!br|p|img)[^>]*>" 匹配html中的标签,非br,p,img
(?!匹配模式) 我们先来实现第一个目标——匹配不以特定字符串开头的条目。 在网上看到了 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |