正则表达式是学习编程绕不开的话题,无论是Python也好或者Java等其他语言也罢。都需要写正则表达式。所谓的正则,就是由一堆字母和符号组成的特殊文本,它可以从目标文本中找到我们想要的内容的语句。
比如我们爬取数据时,需要正则去匹配响应中的数据;
用户名注册,需要验证用户名的字符以及长度等
刚开始学习正则时,真的是吐了。虽然网上教程很多,但是正则表达包含的符号也多啊,死记硬背今天记住了,明天又忘了。就在前几天上班摸鱼的时候,我发现GitHub上有一个非常牛X的项目:learn-regex,目前已经37.8K 星。可以有效的帮助大家入门和掌握正则表达式,并且这个项目被翻译成了多种语言。项目地址:https://github.com/ziishaned/learn-regex

项目内容
项目分为6个章节,内容并不是很多,一会儿就能看完。
目录如下图所示
开始先从简单的正则表达式入手,介绍了基本匹配、元字符。大家都知道,正则表达式主要就是依赖于元字符,所以这是掌握正则的重中之重
| 元字符 | 描述 |
|---|
| . | 句号匹配任意单个字符除了换行符。 |
| [ ] | 字符种类。匹配方括号内的任意字符。 |
| [^ ] | 否定的字符种类。匹配除了方括号里的任意字符 |
| * | 匹配>=0个重复的在*号之前的字符。 |
| + | 匹配>=1个重复的+号前的字符。 |
| ? | 标记?之前的字符为可选. |
| {n,m} | 匹配num个大括号之前的字符或字符集 (n <= num <= m). |
| (xyz) | 字符集,匹配与 xyz 完全相等的字符串. |
| | | 或运算符,匹配符号前或后的字符. |
| \ | 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ | |
| ^ | 从开始行开始匹配. |
| $ | 从末端开始匹配. |
| 简写 | 描述 |
|---|
| . | 除换行符外的所有字符 |
| \w | 匹配所有字母数字,等同于 [a-zA-Z0-9_] |
| \W |
匹配所有非字母数字,即符号,等同于: [^\w] |
| \d | 匹配数字: [0-9] |
| \D | 匹配非数字: [^\d] |
| \s | 匹配所有空格字符,等同于: [\t\n\f\r\p{Z}] |
| \S | 匹配所有非空格字符: [^\s] |
| \f | 匹配一个换页符 |
| \n | 匹配一个换行符 |
| \r | 匹配一个回车符 |
| \t | 匹配一个制表符 |
| \v | 匹配一个垂直制表符 |
| \p | 匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符 |
每个章节除了有详细的文字介绍,代码示例。最牛X的地方是都附带了在线练习
在线练习
比如判断某个语句是否以 The 开头。
匹配到的部分会高亮显示,并且再右侧会给出相应的解释。
网址:https://regex101.com/
其他推荐
1、Regexr
这是我经常使用的一个正则表达式的调试工具,使用方法也非常简单,只需要将正则表达式输入进入,就会高亮显示匹配到的内容在使用的时候可以随时修改我们的正则表达式,从而达到正确匹配的目的。
2、Regulex
一个在线的正则表达式的可视化工具,废话不多说,直接上图地址:https://jex.im/regulex/

从图中可以看出,这个正则分为两部分
A-Z: 给出的解释是One of: A-Z,意思就是字母A到Z其中之一Word: 1 or more times,1个或者多个字母
对于正则很多同学刚开始第一感觉就是难学,好物规律可寻。其实只是对正则不了解而已,真正了解之后你会发现正则其实就那么一点语法。以上阿亮给大家分享的3个关于正则的工具,无论是学习还是以后的工作中都会有帮助的~