社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 标星 3.8w!最火正则表达式

Python绿色通道 • 3 年前 • 381 次点击  

↑ 关注 + 星标 ,每天学Python新技能

后台回复【大礼包】送你Python自学大礼包


正则表达式是学习编程绕不开的话题,无论是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

这是我经常使用的一个正则表达式的调试工具,使用方法也非常简单,只需要将正则表达式输入进入,就会高亮显示匹配到的内容
在使用的时候可以随时修改我们的正则表达式,从而达到正确匹配的目的。
非常使用,推荐给大家。
地址:https://regexr.com/



2、Regulex

一个在线的正则表达式的可视化工具,废话不多说,直接上图
还是拿我们上面的例子来说([A-Z])\w+

地址:https://jex.im/regulex/


从图中可以看出,这个正则分为两部分

  • A-Z: 给出的解释是One of: A-Z,意思就是字母A到Z其中之一
  • Word: 1 or more times,1个或者多个字母



对于正则很多同学刚开始第一感觉就是难学,好物规律可寻。其实只是对正则不了解而已,真正了解之后你会发现正则其实就那么一点语法。以上阿亮给大家分享的3个关于正则的工具,无论是学习还是以后的工作中都会有帮助的~



  1. 知网哭穷赔不起1200亿,网友:收钱时咋不嫌多

  2. 5 分钟,使用内网穿透快速实现远程手机桌面!

  3. 别人的导师!学生知乎上提问导师人品如何,没想到导师亲自回答了...




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/134880