在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 = @""; NSString *pattern = @"^1[3578]\\d{9}$";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options: error:nil]; // 测试字符串
NSArray *resultArray = [regex matchesInString:userName options: range:NSMakeRange(, userName.length)]; NSLog(@"%zd",resultArray.count);
}
return ;
}

打印出匹配的字符

        NSString *userName = @"ddd333jda892dd34dsss";

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

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

iOS 正则表达式(一)的更多相关文章

  1. iOS - 正则表达式判断邮箱、身份证..是否正确:

    iOS - 正则表达式判断邮箱.身份证..是否正确: //邮箱 + (BOOL) validateEmail:(NSString *)email {     NSString *emailRegex ...

  2. iOS正则表达式 分类: ios技术 2015-07-14 14:00 35人阅读 评论(0) 收藏

    一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

  3. iOS 正则表达式使用(转)

    1/ 教程一:认识正则表达式 .http://deerchao.net/tutorials/regex/regex.htm#mission 表7.尚未详细讨论的语法 代码/语法 说明 \a 报警字符( ...

  4. iOS 正则表达式(二) RegexKitLite使用

    下面介绍的是iOS的一个第三方库,RegexKitLite .使用起来是非常方便的,不过是2008年写的,MAC模式,我们在使用的时候,需要作两步操作. RegexKitLite 导入 我们在gith ...

  5. iOS正则表达式

    //包含数字和字母的密码长度6-16位 -(BOOL) validatePassword:(NSString *)password { //密码正则表达式 NSString *passwordRege ...

  6. IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)

    需求很简单,是从一段文本中匹配出其中的超链接.基本的做法就是用正则表达式去匹配.但是有这样一个问题. 网上大部分的识别URL的正则表达式url末尾有空格的情况下可以正确识别.比如这样的情况. 我是一段 ...

  7. iOS 正则表达式小结

    #pragma mark - 正则第一种表示方式-利用NSPredicate(谓词)匹配//    NSString *email = @"15078357696@163.com" ...

  8. iOS正则表达式的使用案例-富文本

    富文本(正则表达式) 一.新建工程导入图片 二 实现方式一(缺点是只能解决一个图片的替换) _myLabel.font = [UIFont systemFontOfSize:15]; //@" ...

  9. IOS正则表达式 (身份证、电话、汉字等常用条件筛选)

    下面的正则列表   替换对应的正则规则 那个字符串就可以了  例如: //正则规则 NSString *regex = @"^((13[0-9])|(147)|(17[0-9])|(15[^ ...

随机推荐

  1. Django中,ajax检测注册用户信息是否可用?

    ajax检测注册用户信息主体思路 1.在settings.py中配置需要使用的信息 #对static文件进行配置 STATICFILES_DIRS=[ os.path.join(BASE_DIR,'s ...

  2. Excel相关操作

    public static bool DataSetToExcel(DataSet dataSet, string filePath, bool isShowExcle = true) { DataT ...

  3. com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'id' at row 1

    1.存储的值超过了字段长度.调整数据库中的字段长度 2,变更字段字符集编码为utf8

  4. TOP100summit2017:Riot Games 李仁杰——大数据落地要找到数据和经验的平衡点

      壹佰案例:李仁杰老师您好,很荣幸您能参加第六届TOP100全球软件案例研究峰会,您在大数据和人工智能领域有非常丰富的经验,在这次大会上您将分享什么内容? 李仁杰:这次我主要分享的有两个方面. 一个 ...

  5. [No0000181]改善C#程序的建议9:使用Task代替ThreadPool和Thread

    一:Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: 1: ThreadPool不支持线程的取消.完成.失败通知等交互 ...

  6. 添加字体与字符集locale支持(基于busybox文件系统)

    添加字体与字符集(基于busybox文件系统) 2011-10-11 14:07:32 分类: LINUX 1.添加字体 下面以文泉驿为例 $ mkdir  -p  rootfs/usr/share/ ...

  7. wpf(Application 如何创建一个事件,及其Application相关的属性)

    1.如何关闭wpf程序.应用程序的关闭只有调用其shutdown方法才可以.shutdown有三种属性.OnLastWindowClose,OnMainWindowClose,OnExplicitSh ...

  8. python3实现字符串的全排列的方法(无重复字符)

    https://www.jb51.net/article/143357.htm 抛出问题 求任意一个字符串的全排列组合,例如a='123',输出 123,132,213,231,312,321.(暂时 ...

  9. 转:JAVA中解决Filter过滤掉css,js,图片文件等问题

    原文链接:https://www.cnblogs.com/ermeng/p/6440966.html public void doFilter(ServletRequest request, Serv ...

  10. CF718C Sasha and Array 线段树+矩阵加速

    正解:线段树 解题报告: 传送门! 首先这种斐波拉契,又到了1e9的范围,又是求和什么的,自然而然要想到矩阵加速昂 然后这里主要是考虑修改操作,ai+=x如果放到矩阵加速中是什么意思呢QAQ? 那不就 ...