引言
大家好,今天分享一个可视化正则表达式的网站,可以更加清晰的调试正则表达式,方便大家应对那种没有注释并且看不懂的正则。
正则可视化
Github 地址:github.com/CJex/regule...
来看看效果,网站自带的正则可视化效果:
从图片中可以很清楚的看出来,这个正则使用了一个捕获组,匹配字符 a
或者 b
中的任意一个,而后面的 *?
则会让正则尽可能是的匹配字符,体现在图中就是 0 or more times
,很简单的一张图,但是却清晰的展示了正则的含义。
我们再找一个复杂一些的正则试试:
很清晰,对吧,一看就能看到三种字符,可以循环 4-16 次。
但是这个项目是六年前的项目了,像反向否定预查((?<=Y)X
)这种语法目前是不支持的,不过我找了一下 issues,发现有人新增了语法支持,地址:jianyu.io/regulex/
我们来尝试一下 IP 地址匹配的正则:
这个正则还是比较复杂的,从图上可以看出来,正则一共分为几个部分,首尾都不能是数字或者点,中间部分通过次数限制匹配 255
,或者 225
或者 192
这种的 IP 地址,涵盖了 ABC 类 IP 地址。
再来看一个负的浮点数正则:
一目了然,一共有三个分组,分别对应三种情况,这里我就不多解释了。
正则调试
顺便这里再分享一个调试正则表达式的网站,也是我平时调试正则常用的。
它长这样:
它支持多种语言的正则表达式调试,同时支持多种模式,也会高亮字符串中匹配到的内容,方便我们调试正则。
看一个 IP 地址的示例:
不仅在结果中会高亮对应的字符,也会在正则中高亮对应的部分,提示我们哪部分正则匹配到了内容,并且右侧还有友好的提示,如果我们忘记或者不知道如何匹配可以作为参考。
总结
虽然现在写爬虫很少用到正则了,不过有的时候还是偶尔会用来搜索文件或者使用 notepad++ 来批量替换内容,速度杠杠的,也可以用在字符串处理中,或者日志处理,使用起来效率很高,速度飞快!
本文章首发于个人博客 LLLibra146's blog
本文作者:LLLibra146
更多文章请关注公众号 (LLLibra146)
版权声明 :本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!