zoukankan      html  css  js  c++  java
  • 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 匹配任意不是单词结尾或开头的字符 [^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 = @"匹配失败"; } }

     
  • 相关阅读:
    win10如何在局域网中设置一台电脑的固定ip地址
    智能电视软件安装(WIFI上网)
    路由器连接宽带(成功上网步骤方法)
    FastReport.Net使用:[5]主从表
    FastReport.Net使用:[4]分组
    FastReport.Net使用:[3]简单报表一
    FastReport.Net使用:[2]添加MSSQL数据源一
    FastReport.Net使用:[1]屏蔽打印对话框
    如何配置FastReport.Net环境
    如何安装使用FastReport
  • 原文地址:https://www.cnblogs.com/Caersi/p/6115797.html
Copyright © 2011-2022 走看看