滚蛋吧,正则表达式!
这是「进击的Coder」的第 596 篇技术分享作者:小 G来源:GitHubDaily
“
阅读本文大概需要 7 分钟。
此前我曾在公众号推荐过不少正则表达式的相关工具与教程,以帮助大家掌握这个晦涩难懂,却在实际开发中颇为实用的编程神技。
刚好,前阵子我在 GitHub 又看到一款不错的正则表达式可视化神器,就想着顺手给各位推荐一下,再结合先前的几个工具和教程,做下总结。
说实在的,作为一名程序员,正则表达式可谓是我们必须掌握的技术之一,特别是在进行信息的快速检索、验证、匹配的时候,使用正则表达式能为我们减轻不少开发压力。
但是,正则表达式的规则众多,且难以记忆,如果你学会之后,隔了一段时间没用上,那很快又会忘得一干二净。
就拿我来说吧,在学正则表达式这件事情上,总是反反复复的来回折腾,浪费了不少时间。
由此可见,实践才是检验技术的唯一标准啊。
OK,话不多说,开始进入正题。
regex-vis
这是我近期在 GitHub 上看到的一个蛮不错的正则表达式可视化工具,作者是国内的一位开发者。
简单来说,regex-vis 是一个可辅助学习、编写和验证正则的工具。但与其它可视化工具不同是,regex-vis 不仅能对正则进行可视化展示,还提供了可视化编辑正则的能力。
作者提供了一系列组件,让你可在 Web 页面上通过配置,快速生成正则表达式,以及对应的可视化图形,并且还支持运行测试,检验结果。
另外,还有暗黑模式主题切换、正则表达式测试、常用样例展示等功能。
可以说,有了这款工具之后,后续编写正则表达式会省下不少精力。
技术原理:https://www.bowencodes.com/post/regex-vis
GitHub:https://github.com/Bowen7/regex-vis
i Hate Regex
从网站的名字上你应该就可以猜测到,作者是有多讨厌正则表达式这玩意,不过讨厌归讨厌,当你用上它之后,还是只能大呼:"真香!"。
这个网站的主要作用,是可快速搜索并匹配到合适的正则表达式,帮你完成如用户名、邮箱、日期、手机号码、密码等常见规则的验证。
此外它还会在详情页中展示正则表达式的具体功能介绍、可视化图表、速查表等内容,令你得以更快的掌握正则表达式的应用。
总的而言,对于正则表达式不太熟练的同学,这个网站还是能起到很大帮助的。
不过,从长期的投入产出比上看,我个人还是推荐你系统性学习下正则表达式,相信在未来的一些工作上应该能帮你省下不少时间。
网站:https://ihateregex.io
GitHub:https://github.com/geongeorge/i-hate-regex
learn-regex
《Learn Regex the easy way》是一个曾经在 GitHub 爆火的正则表达式教程。
在这个课程里面,你能学到一系列关于正则表达式基础知识,如基本匹配、元字符、简写字符集、零宽度断言、标识等内容。
由于该教程受到无数开发者热捧,在 GitHub 至今已突破 4w Star,因此也被翻译成了中日韩等多国语言,让那些英语能力不太好的同学也能上手学习。
GitHub:https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md
从 0 到 1:学习正则表达式
项目作者是来自土耳其的开发者 Aykut Kardaş,目前已有人将其翻译成了中文。
与常规技术教程不同,该教程会基于问答的形式,通过可交互式界面,让你在互动中实践与理解正则表达式,使得整个学习过程不再枯燥乏味。
在你完成一道问答题之后,下一道题才会解锁,有点像玩游戏时通关打怪的味道。
以第一道题目为例,你需要用正则表达式,快速匹配以下五个单词:
bar ber bir bor bur
可以看到,每个单词都以 b 开头,r 结尾,中间夹着字母 a e i o u。
了解单词的规律后,写成正则表达式,就会像下面这样:
/b[aeiou]r/g
上面这行就是答案,输入答案框,即可解锁下一道题。即便你解不出来,也不用慌,戳网站上对应的 [显示答案] 按钮,即可快速揭晓答案。
此外,因为正则表达式容易被人遗忘的特性,作者还贴心的给出了正则表达式的速查表,通过这个速查表,后期可以很方便的进行查阅复习。
此外,作者还提供了一个「游乐场」功能,可让你平时用于正则表达式的训练与学习。
整体看来,该工具会着重于正则表达式的学习、练习、测试与分享,给你一条龙服务,通过简单有趣的方式,快速掌握正则表达式的应用。
网站上目前的问答题不算多,总共就 50 多道,内容也都很精简实用。
在线体验:https://regexlearn.com/zh-cn/
GitHub:https://github.com/aykutkardas/
regex101
对于一个正则表达式初学者来说,单看不练肯定无法让自己的技能得到提升,因此你还需要一款在线练习工具,来帮你巩固正则表达式的学习基础,它就是:regex101。
地址:https://regex101.com
网站支持中文、英文、法文、德文等多个国家语言,在你运行检查正则表达式规则的时候,还会在左侧非常贴心的给出对应解释。
而在右下角还附有正则表达式的快速参考手册,方便你边练边学。
怎么样,是不是觉得你离学会正则表达式又近了一步?
写在最后
其实,在学习一门新技能的时候,来来回回基本都是那几个套路,先把最简单的概念搞懂,紧接着开始上手练习,边做边学,遇到不懂的再回去查手册,通过这种方式,不断加深对这项技术的印象,慢慢的形成肌肉记忆,你便能在潜移默化中掌握这项技能了。
以上,便是今天跟大家分享的开源项目,希望对你有所帮助。
文中所提到的所有开源项目,已收录至 GitHubDaily 的开源项目列表中,有需要的,可访问下方 GitHub 地址或点击「阅读原文」查看:GitHub:https://github.com/GitHubDaily/GitHubDailyEnd
崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!
内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍
扫码购买