博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 正则表达式(一)
阅读量:4970 次
发布时间:2019-06-12

本文共 1976 字,大约阅读时间需要 6 分钟。

在iOS开发中,正则一直是最常用的,但也是一直记不住的,现在做一些简单的总结

我们在网上找的正则,要有'\',这个在iOS是转义符,需要'\\'这样

int main(int argc, const char * argv[]) {    @autoreleasepool {        // insert code here...        // 1.创建正则表达式        // []:找到内部的某一个字符串        // "[a-z]" :小写        // "[a-zA-Z]" :大小写        // "[a-zA-Z0-9]" :大小写及数字        // "\\d" 相当于 "[0-9]"        // "\\d{3}" 相当于“\\d\\d\\d”,表示找到连续3个一起的数字        // "\\d{2,4}" 表示2数字或者4个数字 符合的。如"342455" ,得到两个结果“3424“和”55”                // .    匹配除换行符以外的任意字符        // \w    匹配字母或数字或下划线或汉字        // \s    匹配任意的空白符        // \d    匹配数字        // \b    匹配单词的开始或结束        //  ^    匹配字符串的开始。如 @"^\\d{2}" : 表示以2数字开头,“345dd”匹配1个,“1d2e33”没有匹配        //  $    匹配字符串的结束。如 @"\\d{2}$" :表示以2数字结尾,“ddd22”匹配1个,"dd3s3s"没有匹配        //  例如手机:@"^1[3578]\\d{9}$" ,表示以1开头,中间匹配任意3,5,7,8 ,最后以9个数字结尾        //  当然,正确的手机"1[3578]\\d{9}$"和"1[3578]\\d{9}" 写都是可以匹配的。                //        *    重复零次或更多次        //        +    重复一次或更多次        //        ?    重复零次或一次                NSString *userName = @"13800138000";                NSString *pattern = @"^1[3578]\\d{9}$";        NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];                // 测试字符串        NSArray *resultArray = [regex matchesInString:userName options:0 range:NSMakeRange(0, userName.length)];                NSLog(@"%zd",resultArray.count);    }    return 0;}

 

打印出匹配的字符

NSString *userName = @"ddd333jda892dd34dsss";                NSString *pattern = @"[a-zA-Z]+"; // 匹配一次或更多次,会打印出连续的英文        NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];                NSArray *resultArray = [regex matchesInString:userName options:0 range:NSMakeRange(0, userName.length)];                for (NSTextCheckingResult *result in resultArray) {             NSLog(@"%@ %@",NSStringFromRange(result.range),[userName substringWithRange:result.range]);        }

结果(会打印出连续的结果):

 

转载于:https://www.cnblogs.com/jys509/p/5535379.html

你可能感兴趣的文章
Codeforces Round #206 (Div. 2)
查看>>
Mycat分表分库
查看>>
模板的文件名和方法名一定要一致!!
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
通过给定的文件流,判断文件的编码类型
查看>>
zookeeper(3) 持久化
查看>>
Windows Socket I/O模型 以及 Linux Epoll模型 的有关资料(转)
查看>>
用guava快速打造两级缓存能力
查看>>
随服务初始化的Servlet
查看>>
如何修改eclipse中maven默认仓库路径
查看>>
mysql--插入,删除
查看>>
软件需求第四周安排
查看>>
判别模型、生成模型与朴素贝叶斯方法
查看>>
【原创】大叔经验分享(19)spark on yarn提交任务之后执行进度总是10%
查看>>
wget
查看>>
python逻辑回归分类MNIST数据集
查看>>
广播信道--CSMA/CD协议
查看>>
第二十六课
查看>>