不到一分钟,我删掉近6万行的代码

2018 年 1 月 29 日 CocoaChina YourSimple

前言


最近在学习正则,刚过入门阶段,我发现自己已经深深的爱上了正则,不仅仅是因为她的独特和优秀,更多的是那魔性的力量,强大到让我难以置信。如果你对正则还没有了解,不管你从事哪一行,都建议你去学一下,毕竟,她会对你以后的工作节省众多的时间。节省的时间干什么呢?你可以去旅行啊,世界这么大,还是去看看吧!



故事开头


所谓不到一分钟,我删掉近6万行的代码这个问题,其实我是利用正则删掉了整个项目中,所有的空白行和注释行。这样做,除了是为了测试和练习正则之外,我们还可以优化代码结构,尤其是对那些有强迫症的人,比如说我,多个空行少个空行都不舒服。


我们可以使用正则搜索任何想要的内容,而普通搜索是达不到我们的要求的。我们还可以使用替换功能,删除和修改任意内容到指定格式。接下来的内容就是故事的正文,虽然仅仅是正则冰山一角,但依旧独美。


故事上演


1.首先我们来匹配所有的空白行,空白行我们可以使用^$来匹配,但是这样仅仅是能匹配空行,就是一行当中没有任何字符,包括空格。所以我们使用^ *$\n,其中的脱字符表示匹配行开头,美元符$代表行结尾。紧跟符号的是一个空格和一个*号,空格和*一起表示,中间可以有任意多个空格,包括没有空格。最后的\n代表的是换行符,之所以要匹配到换行符,是因为我们要用空白内容替换掉所有的空白行,只有这样才能消除空行,不然替换结果依旧是一个空白行。


2.我这边使用的工具是Xcode,测试的是一个iOS项目。搜索方式我们从文本搜索切换到正则搜索,搜索的正则表达式为^ *$\n,替换内容为空即可,见下图。匹配成功后,执行就可以。我把所有的空行去掉后,项目编译成功。



3.接下来我们介绍如何删除注释行,这里的注释删除以//开头(//前可以有空格),对于多行注释和代码后紧跟的单行注释不生效,当然,可以使用正则重新匹配这些特殊的注释。^ *//.*$\n,这个就是我们匹配单行注释的正则表达式,其中^之后紧跟着空格和*,表示可以任意多的空格,也可以没有,//匹配双反斜杠,其中的点是通配符,可以匹配任意字符,.*连在一起表示可以任意多个字符,也可以没有。替换内容仍旧是空,看效果。



4.虽然我们只是测试,但是我们会经常遇到这种需求。比如在开发中,我们会将接口返回的json数据转化为模型,我一般习惯复制json的部分内容放到模型中,方便转换。久而久之,项目遗留的这些无用注释,需要删除,因为作用不大,那么我就可以通过正则秒杀全场,而不用苦逼的找到对应的模型文件,一块一块的删除。




故事结尾


看了以上的例子,希望可以触发出你对正则的兴趣,这里附上两篇正则学习博客。



登录查看更多
0

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
198+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
77+阅读 · 2020年6月22日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
164+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
121+阅读 · 2020年5月10日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
142+阅读 · 2020年2月16日
手把手教你用Python做一个哄女友神器,小白可上手
网易智能菌
5+阅读 · 2019年6月15日
我的if else代码纯净无暇,一个字也不能简化
机器之心
3+阅读 · 2018年12月28日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python NLP 入门教程
大数据技术
20+阅读 · 2017年10月24日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
你见过马化腾17年前写的代码吗?
互联网it观察
5+阅读 · 2017年7月3日
Learning in the Frequency Domain
Arxiv
11+阅读 · 2020年3月12日
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Arxiv
6+阅读 · 2018年8月27日
Arxiv
14+阅读 · 2018年5月15日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
198+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
77+阅读 · 2020年6月22日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
164+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
121+阅读 · 2020年5月10日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
142+阅读 · 2020年2月16日
相关资讯
手把手教你用Python做一个哄女友神器,小白可上手
网易智能菌
5+阅读 · 2019年6月15日
我的if else代码纯净无暇,一个字也不能简化
机器之心
3+阅读 · 2018年12月28日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
Python NLP 入门教程
大数据技术
20+阅读 · 2017年10月24日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
你见过马化腾17年前写的代码吗?
互联网it观察
5+阅读 · 2017年7月3日
相关论文
Learning in the Frequency Domain
Arxiv
11+阅读 · 2020年3月12日
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Arxiv
6+阅读 · 2018年8月27日
Arxiv
14+阅读 · 2018年5月15日
Top
微信扫码咨询专知VIP会员