iOS之正则表达式(一)
这几天研究正则表达式发现正则表达式真是个好东西,可以在支付的时候轻松匹配交易数额,入门内容以及匹配如下: @interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *textTf; @property (weak, nonatomic) IBOutlet UILabel *label;
@property (weak, nonatomic) IBOutlet UIButton *testBtn; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. //1.正则表达式的作用 方便快捷的匹配到特定的字符串,简化代码量
//例子解析
/* ^.{6,18}$ 表达的意思是匹配任意长度在6到18位长度的字符串
其中^和$代表的是特殊符号,前者表示匹配字符串的开头,后者表示匹配字符串的结尾;
其中{n}表示匹配字符重复n次,{n,}匹配字符重复n次或者更多次,{n,m}匹配重复n到m之间的次数;
而.符号表示任一字符(除换行符之外);
*/ /*为了进行精确的匹配,比如说匹配到具体的数字或者字母可以用特殊的符号来表示,其中\d表示任意的单个数字,\w表示任意单个字母或者数字或者直接使用0-9的任意数字表示具体数字。而特殊符号?表示前一个字符为0或者1个。
所以形如^0\\d{2}\-?\\d{8}$ 表示的意思是匹配首字符为0后续接两个数字,再后续有一个“-”符号或者没有,再后续匹配8个数字; 有一点要注意,上面展示的表达式解析时\d这些特殊符号在我们的代码中多了一个\,这是因为\本身是转义符号,为了保证表达式能正常匹配,我们要给\d进行一次转义,所以就变成了\\。基本上所有的符号字符都需要转义
*/ /*正则表达式的拆分可以分为两部分,一部分是值表达式,另外一部分是修饰表达式。所谓值表达就是说这个符号表示了某个值,就像"\d"表示数字,"."表示任意非换行符字符。修饰表达用来修饰值达成某种条件,比如{2}表示前面一个值重复两次,"*"表示前一个值重复0次或者更多次。根据这种方法,那么^.*[A-Z]+.*[a-z]+.*$可以拆分成:^$、.*、[A-Z]+、[a-z]+。 注:*表示前一个值符号重复0到任意次数;+表示前一个值符号重复1到任意次数
[A-Z]表示任意一个大写字母
*/ //2.语法/字符说明表
//值表达
/*
. 匹配除换行符外的任意字符
\w 匹配字母或者数字的字符
\W 匹配任意不是字母或者数字的字符
\s 匹配任意的空白符(空符、制表符、换行符)
\S 匹配任意不是空白符的字符
\d 匹配任意数字
\D 匹配任意非数字的字符
\b 匹配单词的结尾或者开头的字符
\B 匹配任意不是单词结尾或开头的字符
[^x] 匹配任意非x的字符。如[^[a-z]]匹配非小写字母的任意字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
*/ //修饰表达
/*
* 匹配重复任意次数
+ 匹配重复一次以上的次数
? 匹配一次或零次
{n} 匹配重复n次
{n,} 匹配重复n次或n次以上
{n,m} 匹配重复最少n次最多m次
*/ [self.testBtn addTarget:self action:@selector(testBtnClick:) forControlEvents:UIControlEventTouchUpInside];
} - (void)testBtnClick:(UIButton*)btn{
NSLog(@"开始测试");
// NSString *regExp = @"^\\d{5,8}"; //匹配5到8位数字
NSString *regExp = @"^\\d{1,}\\.\\d[1-9]"; //匹配小于等于0.01的数字
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regExp];
if ([predicate evaluateWithObject:self.textTf.text]) {
self.label.text = @"匹配成功";
}else{
self.label.text = @"匹配失败";
} }
iOS之正则表达式(一)的更多相关文章
- IOS常用正则表达式
IOS常用正则表达式 正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是 ...
- iOS之正则表达式的使用
一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...
- iOS - Regex 正则表达式
1.Regex 定义 正则表达式又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为 regex.regexp 或 RE),计算机科学的一个概念.正则表达式使用单个 ...
- IOS开发——正则表达式验证手机号、密码
App的实际应用中,用户登陆功能基本是每个App都有需求的一个功能.而当前我们很常规的做法,就是让用户把手机号作为自己的用户名,而在注册获取短信验证码的过程中,我们首先要完成的一个步骤,就是校验用户的 ...
- IOS之正则表达式
在现阶IOS开发的样式越来越多,我们在开发APP的时候难免会遇到对用户的登录和注册进行操作,但是登录注册如果想要做的人性化少不了的就是校验,对当前用户的登录信息进行校验,如果满足要求我们会把用户注册的 ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...
- iOS开发正则表达式的学习
正则表达式笔记 每天的一小步,知道我在不断进步,这就是我每天的小目标. 这是我的第一篇博客,在工作之余,我会努力地留下些许脚印. 我是一名iOS开发者,对于iOS我仅仅只是一个菜鸟,愿意在此处留下我的 ...
- iOS中正则表达式的基本使用方法
一.第三方框架RegexKitLite的使用 在ios项目中可以借用第三方框架RegexKitLite来简化对正则表达式的使用,使用方法如下 1.去RegexKitLite下载类库,解压出来会有一个例 ...
- IOS 用正则表达式解析HTML等文件,得到所有文本
获得网页内容 NSURL *url=[NSURL URLWithString:@"http://121.199.34.52/wordpress/?json=core.get_post_con ...
- iOS开发--正则表达式
目录[-] 正则表达式简单语法总结 一.什么是正则表达式 二.正则表达式的基础语法 1.字面值 2.特殊字符(元字符) (1)句号 (2)字符类([]) (3)区间符号(-) (4)取反符号(^) ( ...
随机推荐
- 文献阅读报告 - 3DOF Pedestrian Trajectory Prediction
文献 Sun L , Yan Z , Mellado S M , et al. 3DOF Pedestrian Trajectory Prediction Learned from Long-Term ...
- grep 使用方法 --rn使用
生产环境中,我们经常会碰到一个报错但是却不知道配置文件的路径在哪里,这时候用rn就能轻松解决 [root@localhost ~]# grep -rn "搜索的内容" 路径
- python刷LeetCode:20. 有效的括号
难度等级:简单 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序 ...
- Java8集合框架——LinkedList源码分析
java.util.LinkedList 本文的主要目录结构: 一.LinkedList的特点及与ArrayList的比较 二.LinkedList的内部实现 三.LinkedList添加元素 四.L ...
- SPOJ 3883. LATGACH3/ UVA 10918
用1*2的方块去覆盖3*n的方块 http://www.cnblogs.com/staginner/archive/2011/12/16/2290020.html 玉斌大神的题解 其实我昨晚想得跟斌神 ...
- MySQL性能管理及架构设计:第1章 实例和故事
1-1 什么决定了电商双11大促的成败 数据库架构 1-2 在双11大促中的数据库服务器 通过监控信息从而确定:哪些因素影响了数据库性能? 1-3 在大促中什么影响了数据库性能 1-4 大表带来的问题 ...
- HTML 回到顶部 浮动
回到顶部 <div id="FloatDIV" style="position: absolute; top: 0px; z-index: 9999; backgr ...
- postman问题
问题1:postman请求出现 'SSL certificate verification' ,实际为https的问题 解决: 1)关闭fiddler 2)或在File > Settings & ...
- tensorflow常用函数库
归一化函数: def norm_boxes(boxes, shape): """Converts boxes from pixel coordinates to norm ...
- 将微服务注册到Euraka
1.添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId> ...
