滚蛋吧,正则表达式!

FightingCoder

共 2703字,需浏览 6分钟

 ·

2022-04-03 18:10


02dcec4f0197979f49f4d161a7d34a69.webp
这是「进击的Coder」的第 596 篇技术分享作者:小 G来源:GitHubDaily

阅读本文大概需要 7 分钟。


此前我曾在公众号推荐过不少正则表达式的相关工具与教程,以帮助大家掌握这个晦涩难懂,却在实际开发中颇为实用的编程神技。

刚好,前阵子我在 GitHub 又看到一款不错的正则表达式可视化神器,就想着顺手给各位推荐一下,再结合先前的几个工具和教程,做下总结。

说实在的,作为一名程序员,正则表达式可谓是我们必须掌握的技术之一,特别是在进行信息的快速检索、验证、匹配的时候,使用正则表达式能为我们减轻不少开发压力。

但是,正则表达式的规则众多,且难以记忆,如果你学会之后,隔了一段时间没用上,那很快又会忘得一干二净。

就拿我来说吧,在学正则表达式这件事情上,总是反反复复的来回折腾,浪费了不少时间。

由此可见,实践才是检验技术的唯一标准啊。

OK,话不多说,开始进入正题。

regex-vis

这是我近期在 GitHub 上看到的一个蛮不错的正则表达式可视化工具,作者是国内的一位开发者。

简单来说,regex-vis 是一个可辅助学习、编写和验证正则的工具。但与其它可视化工具不同是,regex-vis 不仅能对正则进行可视化展示,还提供了可视化编辑正则的能力。

928d8dc47fbe456745000b836c73318f.webp

作者提供了一系列组件,让你可在 Web 页面上通过配置,快速生成正则表达式,以及对应的可视化图形,并且还支持运行测试,检验结果。

另外,还有暗黑模式主题切换、正则表达式测试、常用样例展示等功能。

可以说,有了这款工具之后,后续编写正则表达式会省下不少精力。

技术原理:https://www.bowencodes.com/post/regex-vis

GitHub:https://github.com/Bowen7/regex-vis

i Hate Regex

从网站的名字上你应该就可以猜测到,作者是有多讨厌正则表达式这玩意,不过讨厌归讨厌,当你用上它之后,还是只能大呼:"真香!"。

51134ac597c1fe80737da3004e1a12a0.webp

这个网站的主要作用,是可快速搜索并匹配到合适的正则表达式,帮你完成如用户名、邮箱、日期、手机号码、密码等常见规则的验证。

65f676a331feaf13b405bc0a4f663435.webp

此外它还会在详情页中展示正则表达式的具体功能介绍、可视化图表、速查表等内容,令你得以更快的掌握正则表达式的应用。

a31ac6c4d24953bf8efb7768bb2b98ad.webp

总的而言,对于正则表达式不太熟练的同学,这个网站还是能起到很大帮助的。

不过,从长期的投入产出比上看,我个人还是推荐你系统性学习下正则表达式,相信在未来的一些工作上应该能帮你省下不少时间。

网站:https://ihateregex.io

GitHub:https://github.com/geongeorge/i-hate-regex

learn-regex

《Learn Regex the easy way》是一个曾经在 GitHub 爆火的正则表达式教程。

在这个课程里面,你能学到一系列关于正则表达式基础知识,如基本匹配、元字符、简写字符集、零宽度断言、标识等内容。

dc460fba93a442088e268198c4e56187.webp

由于该教程受到无数开发者热捧,在 GitHub 至今已突破 4w Star,因此也被翻译成了中日韩等多国语言,让那些英语能力不太好的同学也能上手学习。

GitHub:https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md

从 0 到 1:学习正则表达式

项目作者是来自土耳其的开发者 Aykut Kardaş,目前已有人将其翻译成了中文。

与常规技术教程不同,该教程会基于问答的形式,通过可交互式界面,让你在互动中实践与理解正则表达式,使得整个学习过程不再枯燥乏味

在你完成一道问答题之后,下一道题才会解锁,有点像玩游戏时通关打怪的味道。

e1d75d0eca10878fcb03ea40f9b50eff.webp

以第一道题目为例,你需要用正则表达式,快速匹配以下五个单词:

bar ber bir bor bur

可以看到,每个单词都以 b 开头,r 结尾,中间夹着字母 a e i o u。

了解单词的规律后,写成正则表达式,就会像下面这样:

/b[aeiou]r/g

上面这行就是答案,输入答案框,即可解锁下一道题。即便你解不出来,也不用慌,戳网站上对应的 [显示答案] 按钮,即可快速揭晓答案。

此外,因为正则表达式容易被人遗忘的特性,作者还贴心的给出了正则表达式的速查表,通过这个速查表,后期可以很方便的进行查阅复习。

bf51f560e8cc2d0d94454c27f017f081.webp

此外,作者还提供了一个「游乐场」功能,可让你平时用于正则表达式的训练与学习。

91f876be8e78044ecd15f36603c0caf5.webp

整体看来,该工具会着重于正则表达式的学习、练习、测试与分享,给你一条龙服务,通过简单有趣的方式,快速掌握正则表达式的应用。

网站上目前的问答题不算多,总共就 50 多道,内容也都很精简实用。

在线体验:https://regexlearn.com/zh-cn/

GitHub:https://github.com/aykutkardas/

regex101

对于一个正则表达式初学者来说,单看不练肯定无法让自己的技能得到提升,因此你还需要一款在线练习工具,来帮你巩固正则表达式的学习基础,它就是:regex101。

84a12e8f0d7b49f08c89593a837e04e2.webp

地址:https://regex101.com

网站支持中文、英文、法文、德文等多个国家语言,在你运行检查正则表达式规则的时候,还会在左侧非常贴心的给出对应解释。

而在右下角还附有正则表达式的快速参考手册,方便你边练边学。

怎么样,是不是觉得你离学会正则表达式又近了一步?

写在最后

其实,在学习一门新技能的时候,来来回回基本都是那几个套路,先把最简单的概念搞懂,紧接着开始上手练习,边做边学,遇到不懂的再回去查手册,通过这种方式,不断加深对这项技术的印象,慢慢的形成肌肉记忆,你便能在潜移默化中掌握这项技能了。

以上,便是今天跟大家分享的开源项目,希望对你有所帮助。

文中所提到的所有开源项目,已收录至 GitHubDaily 的开源项目列表中,有需要的,可访问下方 GitHub 地址或点击「阅读原文」查看:GitHub:https://github.com/GitHubDaily/GitHubDailybddd78733b721613c2b2fc785ff1ff06.webp

End

崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,‍同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!

内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍


2f1afb1aa5f6999e33cea2010b3ccf91.webp


扫码购买




好文和朋友一起看~
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报