在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. linux内核添加模块

    参考: http://blog.csdn.net/gaoguoxin2/article/details/50220665 动态添加模块不需要编译内核. LINUX的模块主要由6部分组成: 1.模块的加 ...

  2. Prometheus 函数

    函数列表 一些函数有默认的参数,例如:year(v=vector(time()) instant-vector).v是参数值,instant-vector是参数类型.vector(time())是默认 ...

  3. maven工程之pom模板(hadoop、hive、hbase)

    以下配置文件涵盖了hadoop.hive.hbase开发支持库的配置. 仅需针对maven工程pom.xml文件做相应更改就可以自动生成hadoop开发支持库. <properties>  ...

  4. 动画支持的一些keypath

    transform.scale = 比例轉換 transform.scale.x = 闊的比例轉換 transform.scale.y = 高的比例轉換 transform.rotation.z = ...

  5. TIC Read Status此类网络活动提醒隐藏

    这个方法会使得NSLog输出失效,printf正常工作 不推荐使用,应该是很多操作均被关闭,需要详细了解该参数意义 OS_ACTIVITY_MODE = disable

  6. kafka集群扩容后的topic分区迁移

    https://www.cnblogs.com/honeybee/p/5691921.html kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的:它只有在创建 ...

  7. Scaleform 4.3 (1)

    //可变参数传输 GFxValue args[3], result; args[0].SetNumber(i); args[1].SetString("test"); args[2 ...

  8. 《mongoDB》查询

    一:简单查询 db.collection.find(query, projection) - query :可选,使用查询操作符指定查询条件 - projection :可选,使用投影操作符指定返回的 ...

  9. Interceptor的基本介绍和使用

    简介 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Act ...

  10. Vue双向数据绑定原理分析(转)

    add by zhj: 目前组里使用的是前端技术是jQuery + Bootstrap,后端使用的Django,Flask等,模板是在后端渲染的.前后端没有分离,这种做法有几个缺点 1. 模板一般是由 ...