Regulex:这款正则表达式可视化神器,让复杂正则一目了然!

news/2025/2/19 16:29:07/文章来源:https://www.cnblogs.com/o-O-oO/p/18716504

引言

大家好,今天分享一个可视化正则表达式的网站,可以更加清晰的调试正则表达式,方便大家应对那种没有注释并且看不懂的正则。

正则可视化

地址:https://jex.im/regulex/#!flags=&re=

Github 地址:https://github.com/CJex/regulex

来看看效果,网站自带的正则可视化效果:

从图片中可以很清楚的看出来,这个正则使用了一个捕获组,匹配字符 a 或者 b 中的任意一个,而后面的 *? 则会让正则尽可能是的匹配字符,体现在图中就是 0 or more times,很简单的一张图,但是却清晰的展示了正则的含义。

我们再找一个复杂一些的正则试试:

很清晰,对吧,一看就能看到三种字符,可以循环 4-16 次。

但是这个项目是六年前的项目了,像反向否定预查((?<=Y)X)这种语法目前是不支持的,不过我找了一下 issues,发现有人新增了语法支持,地址:https://jianyu.io/regulex/

我们来尝试一下 IP 地址匹配的正则:

这个正则还是比较复杂的,从图上可以看出来,正则一共分为几个部分,首尾都不能是数字或者点,中间部分通过次数限制匹配 255,或者 225 或者 192 这种的 IP 地址,涵盖了 ABC 类 IP 地址。

再来看一个负的浮点数正则:

一目了然,一共有三个分组,分别对应三种情况,这里我就不多解释了。

正则调试

顺便这里再分享一个调试正则表达式的网站,也是我平时调试正则常用的。

地址:https://regex101.com/

它长这样:

它支持多种语言的正则表达式调试,同时支持多种模式,也会高亮字符串中匹配到的内容,方便我们调试正则。

看一个 IP 地址的示例:

不仅在结果中会高亮对应的字符,也会在正则中高亮对应的部分,提示我们哪部分正则匹配到了内容,并且右侧还有友好的提示,如果我们忘记或者不知道如何匹配可以作为参考。

总结

虽然现在写爬虫很少用到正则了,不过有的时候还是偶尔会用来搜索文件或者使用 notepad++ 来批量替换内容,速度杠杠的,也可以用在字符串处理中,或者日志处理,使用起来效率很高,速度飞快!

原创 LLLibra146

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 10/11 安装paraview

下载: https://www.paraview.org/download/安装打开 paraview 之后报错,如下: paraview.exe -系统错误 paraview 由于找不到 msmpi.dll, ,无法继续执行代码。重新安装程序可能会解决此向题 安装 MPI v10.1.3 https://www.microsoft.com/en-us/download/details.aspx?id…

Float、Double 浮点数的二进制表示方法

转载请标明原文地址:https://segmentfault.com/a/1190000041768195 Float二进制表示法 IEEE754标准中规定,单精度浮点数float占4字节32位 Sign(符号1位)|Exponent(指数8位 偏移127)|Mantissa(尾数23位) Sign(符号):表示浮点数的正负(大于等于0为0,小于0为1) Exponent(指数):…

Float Double 浮点数 IEEE754 二进制表示法

转载请标明原文地址:https://segmentfault.com/a/1190000041768195 Float二进制表示法 IEEE754标准中规定,单精度浮点数float占4字节32位 Sign(符号1位)|Exponent(指数8位 偏移127)|Mantissa(尾数23位) Sign(符号):表示浮点数的正负(大于等于0为0,小于0为1) Exponent(指数):…

五分钟搞定!Linux平台上用Ansible自动化部署SQL Server AlwaysOn集群

五分钟搞定!Linux平台上用Ansible自动化部署SQL Server AlwaysOn集群前言 以下内容是由红帽官方博客整理而成,使用Ansible在Linux平台上自动化部署SQL Server AlwaysOn集群不熟悉整个流程的朋友可以先看之前的部署文章,手动部署一遍 从DNS配置到Pacemaker部署:一步步教你在…

Wireshark的部署(学习笔记)

〇、大纲 1、远程数据包捕获 2、集线器环境下数据包捕获 3、交换机环境下数据包捕获 4、本地流量的捕获 5、虚拟机流量的捕获 一、远程数据包捕获 情形:需要异地管理分析服务器流量,有服务器控制权。方案:使用WinPcap下的Rpcap运行在目标服务器上,向远程控制机传回流量。服…

LeetCode 第24题:两两交换链表中的节点

LeetCode 第24题:两两交换链表中的节点 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 难度 中等 题目链接 https://leetcode.cn/problems/swap-nodes-in-pairs/ 示例 示…

LeetCode 第25题:K 个一组翻转链表

LeetCode 第25题:K 个一组翻转链表 题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 不能只是单纯的改变节点内部的值,…

HJ25 数据分类处理

题目:我的答案: #include <iostream> #include <string> #include <vector> #include <set> #include <map>using namespace std;bool match(const int R, const string &I) {if (I.find(to_string(R)) != std::string::npos){return true;}…

Java Web - 后端

Java Web 后端的基础知识: Maven, Spring Boot, MySQL, JDBC, MyBatisJava Web - 后端 Maven 基于项目对象模型 (POM) 的概念, 通过一小段描述信息来管理项目的构建 官网各种插件以构建生命周期/阶段依赖管理模型从仓库中查找 jar包仓库: 存储资源, 管理 jar包本地仓库: 自己计…

汇编语言笔记_1

汇编语言学习笔记(一)1.基础知识 汇编语言是直接在硬件上工作的语言,本章重在了解硬件系统结构 1.1 机器语言 CPU(中央处理单元)是一种微处理器,功能是执行机器指令每一种微处理器由于硬件设计和内部结构的不同,有自己的机器指令集,也就是机器语言由于机器码晦涩难懂和…