正则表达式快使用场景

平时写Demo会需要用到一些假数据,往往会需要用到数组、字典等,这里分享一个使用技巧,通过正则表达式快速的制造数据

例如,我需要在一个列表中展示一组数据:

第一步:先快速的包装一个数组

NSArray *demoArr = @[
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         ];

数组中先写了一个元素 , 然后进行CV操作

第二步:将backgroundColor对应的值来进行下处理,接下来只需要补充name的值即可,一般情况下,按照CV的方式把backgroundColor的值粘过去就行了,这里演示另外一种方式来实现

NSArray *demoArr = @[
                         
                         @{@"name":@"", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor yellowColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor purpleColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor grayColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor blueColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor blackColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor orangeColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor greenColor]},
                         @{@"name":@"", @"backgroundColor": [UIColor cyanColor]},
                         
                         ];

第三步:使用正则表达式的方式,来补充前面缺少的部分 (关键部分)
1.复制一条数据 @"name":@"", @"backgroundColor": [UIColor redColor]
2.CMD+F快速查找,在Xcode顶部弹出的搜索栏中,点击放大镜按钮

搜索.png

选择Edit Find Options...选项
Edit Find Options.png

Matching Style后选择Regular Expression
Regular Expression.png

3.选择好后,将刚刚复制的一条数据粘贴到输入框内
输入框.png

4.因为存在[]中括号的原因,还不能进行匹配,需要进行转义
@"name":@"", @"backgroundColor": \[UIColor redColor\]
这样才能进行数据匹配(一行)
转移后匹配数据.png

5.伪造数据中前面都一样,只有后面的颜色不同,想要实现全部的匹配,需要将不同处进行通配处理
RedColor改为(.*?),这样就通配了全部的数据
通配.png

6.填充前面缺失的内容,将Find改为Replacement
Replacement.png

7.将搜索框内的内容复制一份到下面的输入框内,这里代表将要将匹配到的数据替换成的内容
将需要填充的地方加上$1(代表对应上面匹配条件的第一个小括号,如果有两个括号,同理$2对应),除了前面需要将匹配到的颜色填充进去外,我们匹配到的数据原本颜色部分也需要改成$1, @"name":@"$1", @"backgroundColor": \[UIColor $1\]
替换.png

8.最后点击Replace按钮,一组假数据就制造完成了

NSArray *demoArr = @[
                         
                         @{@"name":@"redColor", @"backgroundColor": [UIColor redColor]},
                         @{@"name":@"yellowColor", @"backgroundColor": [UIColor yellowColor]},
                         @{@"name":@"purpleColor", @"backgroundColor": [UIColor purpleColor]},
                         @{@"name":@"grayColor", @"backgroundColor": [UIColor grayColor]},
                         @{@"name":@"blueColor", @"backgroundColor": [UIColor blueColor]},
                         @{@"name":@"blackColor", @"backgroundColor": [UIColor blackColor]},
                         @{@"name":@"orangeColor", @"backgroundColor": [UIColor orangeColor]},
                         @{@"name":@"greenColor", @"backgroundColor": [UIColor greenColor]},
                         @{@"name":@"cyanColor", @"backgroundColor": [UIColor cyanColor]},
                         
                         ];

虽然CV的方式不一定比这种方式慢,但多掌握一样技能还是比较有用的.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,304评论 3 25
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,178评论 0 9
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,443评论 0 6
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 1,730评论 0 3