在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. hdu4763 Theme Section【next数组应用】

    Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  2. 利用win10自带的虚拟机Hyper-V安装Centos7的步骤教程

    1.设置开启Hyper-V应用程序? 在搜索功能里输入 Hyper-V 然后点击选中的部分 2.全部选中框中的部分,然后重新启动电脑 3.在搜索功能里输入Hyper-V 打开 4.点击新建--> ...

  3. ==、===和Object.is()的区别

    ==.===和Object.is()的区别 一. 定义: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较: ===:恒等,严格比较运算符,不做类型转换,类型不同就是不等: Obj ...

  4. #include<stdio.h> #include "stdio.h"

    https://baike.baidu.com/item/#include <stdio.h> #include <stdio.h> 编辑 #include<stdio. ...

  5. [daily][pcaman] pacman滚动升级跳过指定包

    有时候有些包是坏的,  我们在Syu的时候,想把它跳过去. 可以在pacman.conf 中使用如下选项: IgnorePkg=linux https://wiki.archlinux.org/ind ...

  6. Java之旅_面向对象_接口

    参考摘自:http://www.runoob.com/java/java-interfaces.html 接口(interface)在Java中是一个抽象类型,是抽象方法的集合. 一个类通过imple ...

  7. jetty各个版本对应的jdk版本

    1:jetty各个版本信息 版本号 发布及维护年份 托管平台 JVM版本 支持的协议 servlet版本 JSP版本 目前状态 9.3 2015 Eclipse 1.8 HTTP/1.1 (RFC 7 ...

  8. 【PyQt5-Qt Designer】工具箱(QToolBox)控件的使用

    工具箱(QToolBox)+toolButton+tabWidget 总体介绍 QToolBox类提供了一列选项卡的小部件(选项卡内含项目). 工具箱是一个小部件,它将选项卡一个一个的显示,当前项目显 ...

  9. 在Windows Server 2008 R2 Server中,上传视频遇到的问题(一)

    在Windows 2008 R2 Server中,上传视频不能播放,以及服务器大小限制问题,这里记录我的解决方法,以免再次遇到,无所适从. 1.上传视频不能播放 打开IIS,找到“MIME类型”,如下 ...

  10. logback 常用配置详解(序)logback 简介

    转自:http://aub.iteye.com/blog/1101260 logback 简介 Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在J ...