本文首发自:喝醉的清茶 官方网址(http://blog.lovecathy.cn/arti...)以及微信公众号“喝醉的清茶” 欢迎大家关注~

一、前言

看到正则表达式,一般第一眼的感觉,就是一串乱七八糟的看不懂的字符,没啥依据可以判断,看起来很懵逼。

其实主要是由于对正则不太了解,当了解正则之后,会发现正则其实就是一串由一些特殊字符组成的有意义的一串,但是可读性比较差,同时不容易理解

本文意图在于大家可以看懂正则表达式,以及会书写基本的正则表达式。

二、什么是正则表达式?

正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符。

三、正则表达式基础字符

用d可以匹配一个数字,w可以匹配一个字母或数字,.可以匹配任意字符

例子:

'12\d' 可以匹配''129',但是没法匹配'12B'
'\d\d\d' 可以匹配三个数字'000'
'\w\w\d' 可以匹配前两个可以是字符或者数字,第三个要是数字 'ab2'

要匹配变长的字符,在正则表达式中,

用*表示任意个字符(包括0个),

用+表示至少一个字符,

用?表示0个或1个字符,

用{n}表示n个字符,

用{n,m}表示n-m个字符:

例子:

\d{4}\s+\w{3,6}
\d{4} 匹配四个数字
\s+ 匹配至少一个空格
\w{3,6} 匹配3-8个数字或者字母

四、正则表达式进阶

可以用[]表示范围

[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;
[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100','0_Z','Py3000'等等;
[a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
A|B可以匹配A或B,所以(P|p)ython可以匹配'Python'或者'python'。

^表示行的开头,^d表示必须以数字开头。

$表示行的结束,\d$表示必须以数字结束

特殊字符需要用 进行转义

更多精彩内容,欢迎大家关注我的微信公众号:喝醉的清茶

简析正则表达式的使用相关推荐

  1. pythonimportre_python中re模块简析

    python中re模块简析 发布时间:2020-05-20 20:01:47 来源:51CTO 阅读:383 re的分组功能 python的re模块有一个分组功能.所谓的分组就是去已经匹配到的内容里面 ...

  2. CAS流程简析 服务端校验Ticket

    相关阅读 CAS基础组件 简介 CAS流程简析 服务端处理未携带Service登录请求 CAS流程简析 服务端处理携带Service登录请求 CAS基础组件 客户端过滤器 简介 用户访问客户端的请求若 ...

  3. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  4. 简析平衡树(三)——浅谈Splay

    前言 原本以为\(Treap\)已经很难了,学习了\(Splay\),我才知道,没有最难,只有更难.(强烈建议先去学一学\(Treap\)再来看这篇博客) 简介 \(Splay\)是平衡树中的一种,除 ...

  5. 基于libmad库的MP3解码简析

    基于libmad库的MP3解码简析  MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...

  6. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  7. Python源码学习:内建类型简析并简析int对象

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇文章中已经大致分析了下,Python的启动执行流程,现在我们分析一下Pytho ...

  8. Python源码学习:启动流程简析

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> Python简介: python主要是动态语言,虽然Python语言也有编译,生成中 ...

  9. 简析TCP的三次握手与四次分手【转】

    转自 简析TCP的三次握手与四次分手 | 果冻想 http://www.jellythink.com/archives/705 TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇 ...

最新文章

  1. 用sql语句实现按时间求累计值
  2. 规范HTML页的几点注意
  3. 别再叫我“老工”!!!工程师姓什么很重要!
  4. 图像处理与图像识别笔记(三)图像增强1
  5. ROL与RCL的差别
  6. java flash_存在漏洞的Java及Flash版本使用者众多
  7. python中的计时器timeit_python中的计时器:timeit
  8. Spring的事务传播机制
  9. 分享Canvas画横断面图的vue源码
  10. 浏览器中的js不能同步更新的解决方案
  11. 了解世界杯赔率,让您运气更‘好‘(个人分享)
  12. 今天看了you tu be 上面的舞蹈
  13. 对称加密与非对称加密的区别
  14. 老男孩每日一题(一)
  15. 生日悖论分析基于python
  16. mysql 收缩日志_MySQL5.7中Undo回收收缩相关参数
  17. multisim仿真时示波器图像显示放大
  18. 分数四则运算java_用java具体代码实现分数(即有理数)四则运算
  19. 串口调试助手 ubuntu桌面版
  20. 台式机如何通过网线共享笔记本的无线网络

热门文章

  1. linux 远程禁用root
  2. Linux下的一个图形管理工具webmin
  3. ASP.Net中省市级联有关
  4. 一步一步深入理解Dijkstra算法
  5. codeforces水题100道 第十一题 Codeforces Round #143 (Div. 2) A. Team (brute force)
  6. Skype for Business Server 2015-升级-实战公开课(免费视频)
  7. python入门经典必备推荐基础教程
  8. LPCRITICAL_SECTION 函数
  9. Generic Data Access Objects -范型DAO类设计模式
  10. sql server支持gb18030里面的疑难中文字