使用可视化的正则表达式生成器来自动生成正则表达式
翻译:简体中文,更新于:2022-04-18 14:46,主编:myweb
概要:正则表达式对于很多人来说是一个很陌生的概念,即便是计算机专业人士,学习正则表达也有一定的门槛。这里给大家讲解一下,我们不需要理解正则表达式的语法就可以使用一个可视化的工具来为我们自动生成正则表达式。
正则的基本概念
一定要先理解正则表达式的基本概念,然后才可以正常操作可视化生成器。如果不理解正则表达式的基本概念,则会遇到很多问题,从而导致生成的结果不符合预期。因此,请一定要仔细阅读并理解此文的所有内容:https://www.wodeabc.com/article/show/8002232
视频讲解
https://www.bilibili.com/video/BV1ZB4y1U7Cq
打开可视化正则表达式生成器
进入「我的ABC软件工具箱」中的「更多功能」,然后单击「正则表达式可视化生成器」,如下图:
进入后的界面如下:
创建第一个条件
由于正则表达式的学习有一定的门槛,因此,可视化生成器给我们提供了一个简单的表单供我们填写,我们只需要简单地「点一点」、「选一选」或「填一填」就可以很方便快速地生成专业的正则表达式。因此,我们需要单击一下入口按钮「创建第一个条件」:
我们会看到以下表单:
填写表单
如果我们已经理解了正则表达式的基本概念,那么,我们只需要再补充一下这几项即可。
文本选项
1、文本内容组成规律
我们看到的所有文本内容都是由单个的文本组成的,比如:一个汉字就是属于单个文本。也就是组成文本内容的最小单元就叫做「单个文本」。
如果一段文本内容只有汉字,那么我们可以用一句话概括出它的规律:由连续多次的任意中文汉字组成的内容。
再比如,针对中国大陆地区的手机号,我们也可以使用一句话总结出规律:由单个数字 1 开头的连续 11 位数字。
这里是常见的规律:
2、文本内容共连续重复几次
「连续重复」是指一个文本按一个规律从左至右连续出现,也就是说从左往右开始,遇到的每一个「单个文本」都符合此规律。
比如,电话号码 :001-12345678,可以使用这样一句话来总结出规律:将数字 0 到数字 9 中的任意单个数字连续重复 3 次,然后是一个单个的减号,这里的减号只需要连续重复 1 次,然后是数字 0 到数字 9 中的任意单个数字连续重复 8 次。
这里是连续重复的设置:
位置选项
这里是常见的位置:
保存表单
当我们填写完表单之后,我们再单击一下「保存」按钮,即可看到如下界面:
我们还可以继续添加条件,上图中的「添加连续内容」是指此条件从左到右连续匹配,「添加或者内容」是指此条件有多种可能。
操作示例
要求
目的:需要写一个正则表达式来查找一个文本内容中的所有电话号码
文本内容中的电话号码样例如下:
- 010-123456
- 010#12345678
- 010#1234567
已知条件:
- 虽然我们对文本抽样时,里面的电话号码区号部分只有三位数字,但实际上也可能会有四位数字
- 电话号码除区号外,最少 5 位数字,最多 8 位数字
具体步骤
第一步,创建第一个条件,规律是:连续的 3 位或 4 位数字
第二步,由于前面创建的条件已经能满足所有的区号了,因此区号部分就已经处理完毕,接下来我们需要创建第二个连续的条件,规律是:固定的文本内容,内容是单个减号
由于单个减号只是电话号码中的一种可能,还有另外一种可能是单个井号,因此,这个条件需要再加一个「或者条件」:
第三步,继续查找电话号码的后面号码的部分,规律是:连续的 0 到 9 的数字,并至少连续重复 5 次,最多连续重复 8 次
第四步,查看正则表达式结果
经过上面的几步,我们已经完成了所有匹配,现在我们可以在这里查看到自动生成的正则表达式:
以下是正则表达式的测试结果: