正则表达式学习笔记 - 工具篇

1,168 阅读4分钟

正则表达式系列总结:

前言

最近工作中遇到一些正则表达式的应用场景,让我对正则有了更多的认识,想要总结记录下学习和应用所得,但又惭愧还学艺不精,所以这万事开头难的第一篇,先从工具开始记录。

本文总结了一些学习、测试、调试正则表达式的实用工具,如果对你有所帮助,欢迎点赞分享,鞠躬。

正则大全 any-rule

地址:github.com/any86/any-r… 常用正则表达式的汇总

在我们日常开发中,可能使用正则最多的场景就是做一些字符串格式验证,any-rule 中收集了一些常用的正则表达式,并且提供了网页版和插件版工具。

网页版(any86.github.io/any-rule/) 除了列出所收录的正则表达式,也提供有对应正则的测试功能,插件版有VSCode版和Jetbrains系列社区版。

我装了插件版,对于一些普通的验证需求,使用起来确实挺方便的,如果不能满足业务需要,也可以在其基础上做扩展。

如果你有更多实用表达式,也可以给仓库提交PR做贡献。

测试工具

桌面端 - RegexBuddy

一个桌面端调试工具,这个是带我学习正则的老师推荐给我的,不过它只有Windows版本, Mac电脑如果没有安装Windows虚拟机,可以通过CrossOver等软件运行使用。

我就比较懒,没有安装虚拟机,用Crossover试了一下确实可用。见下图:

CrossOver.png

regexbuddy.png

Regexbuddy里边提供的功能很多很全面,但以我目前的使用场景来说,也只是用到很少一部分功能,主要还是测试正则匹配文本的成功与否。最后还是觉得这个工具这么用起来稍显麻烦。

所以,我又找了比较好用的在线工具,见下文。

网页版 - regex101

地址:regex101.com/

一个网页版正则测试工具,比regexbuddy支持的语言少。支持6种程序风格。见下图:

regex101.png

除了匹配测试、替换、调试等功能,它还会在右侧给出表达式的释义,当然,如果不习惯英文,可以在左侧菜单栏中的Settings中修改全局的语言。

当然了,有句俗话说:一图胜千言,对于比较复杂的正则,一大堆文字解释可能会让我们更晕,这时候就要搬出最后的图解工具出场了。

图解工具

regexper

地址:regexper.com/

一个在线图解工具,我看过的几篇文章中都提到了这一款,前面的any-rule插件中也引用了它。 图解图片可以下载保存,对于做一些分析、分享之类的很有用。

regexper.png

Regulex

地址:jex.im/regulex

另一款在线图解工具,我个人更习惯使用这个,图解分布相比上一个会更美观一点。

regulex.png

遗憾的是Regulex的作者因为家庭的原因已经好久没有更新过了,看他n年前说的会重构一个全新的版本,至今也完全没有动静了,希望能等到那一天。

还需要注意的是,这两个图解工具都是javascript风格的,且表达式中都不能包含分组名称,不然会报错。

Debuggex

地址:www.debuggex.com/#cheatsheet

最后一个支持图解的工具,和前两个不同的是,除了JavaScript,还支持Python和PCRE风格的表达式。

debuggex.png

不同语言风格之间的具体区别暂时还没研究,在PCRE选中时包含分组名称是可以正常绘制释义图的,所以如果纠结分组名可以试试这个工具,但基于PCRE的表达式在JS中不一定是正确的,还是要弄清楚差别。

结束语

以上就是本文的全部内容,如果你有更好的工具推荐,欢迎评论推荐或分享,感恩。

但愿还会有下一篇,溜了溜了。