学习来源:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664

正则表达式是一种用来匹配字符串的一种强大的武器,用一种描述性语言给字符串定一个规则,凡是符合规则的字符串,我们就认为匹配了,否则,该字符串就是不合法的。

因为正则表达式也是用字符表示的,所以,我们首先了解如何用字符来描述字符。

在正则表达式中,如果直接给出字符,就是精确匹配,

\d :匹配一个数字;

  ‘009\d’可以匹配‘0098’,无法匹配‘009A’

\w:匹配一个字母或者数字;

  ‘\w\w\d’可以匹配‘py3’

. :可以匹配任意字符;

  ‘py.’可以匹配‘py3’,'py@','pyi'

* :匹配任意个字符(包括0个)

+:表示至少一个字符;

?:表示0个或者1个字符;

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

  \d{3}  表示可以匹配3个数字,比如‘’

  \s 可以匹配一个空格(课包括tab等空白符),所以\s+ 表示至少有一个空格,可以匹配‘ ’,‘  ’。

  \d{3,8}表示3-8个数字,such as :''

以上所得只是可以用正则表达式匹配带空格的带区号的电话号码。

如果带特殊字符,则需要用“\”转义。

进阶:

要做到更精确的匹配,可以用[]来表示范围:

 · [0-9a-zA-Z\_] 可以匹配一个数字、字母或者下划线;

 · [0-9a-zA-Z\_]+ 可以匹配至少由一个数字、字母或者下划线组成的字符串,例如‘009’,‘_0ih’,'45ty';

 · [a-zA-Z\_][0-9a-zA-Z\_]* 可以匹配由字母或者下划线开头,后面接任意个由一个数字、字母或者下划线组成的字符串(python的合法变量);

 · [a-zA-Z\_][0-9a-zA-Z\_]{1,19} 更加确认了该变量的长度(1-20个字符),前面一个字符加上后面最多19个字符组成的字符串。

A|B 可以匹配A或者B ,(p|P)ython 可以匹配python ,也可以匹配Python;

^ 可以表示行数的开头;

^\d 表示必须要以数字开头;

$ 表示行数的结束;

\d$ 表述要以数字结束;

pps:^py$ 变成了整行匹配,只能匹配到py

re模块

python提供re模块,包含了所有正则表达式的功能,由于python 本身也是用\来进行转义,所以要特别注意:

s=‘ABC\\-001’ -->'ABC\-001'

建议使用‘r’前缀,就不用考虑转义的问题了。

s=r‘ABC\\-001’

分组:

除了简单的判断是否匹配之外,正则表达式还有提取大量字串的功能,用()表示的就是提取的分组Group.

看例子:

注意到group(0)是原始字符串,group(1),group(2)是第一个,第二个子串。

试着完成了廖雪峰正则下面的两道练习

python--正则表达式|re模块学习的更多相关文章

  1. Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...

  2. Python 正则表达式——re模块介绍

    Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.match函数 re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则matc ...

  3. python正则表达式Re模块备忘录

    title: python正则表达式Re模块备忘录 date: 2019/1/31 18:17:08 toc: true --- python正则表达式Re模块备忘录 备忘录 python中的数量词为 ...

  4. python中confIgparser模块学习

    python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...

  5. Python面试题之Python正则表达式re模块

    一.Python正则表达式re模块简介 正则表达式,是一门相对通用的语言.简单说就是:用一系列的规则语法,去匹配,查找,替换等操作字符串,以达到对应的目的:此套规则,就是所谓的正则表达式.各个语言都有 ...

  6. 第二十一天python3 python的正则表达式re模块学习

    python的正则表达式 python使用re模块提供了正则表达式处理的能力: 常量 re.M re.MULTILINE 多行模式 re.S re.DOTALL 单行模式 re.I re.IGNORE ...

  7. python正则表达式-re模块

    目录: 一.正则函数 二.re模块调用 三.贪婪模式 四.分组 五.正则表达式修饰符 六.正则表达式模式 七.常见的正则表达式 导读: 想要使用python的正则表达式功能就需要调用re模块,re模块 ...

  8. Python之路-python(常用模块学习)

    模块介绍 time &datetime模块 random os sys shutil shelve xml处理 yaml处理 configparser hashlib re正则表达式 1.模块 ...

  9. 【Python】logging模块学习笔记

    因为做接口自动化测试遇到的一个代码逻辑上的问题,又不知道具体问题出在哪里,所以在模块化代码之前,先学习下python的日志模块logging. 入门1 入门2 日志级别大小关系为:CRITICAL & ...

  10. python正则表达式——re模块

    http://blog.csdn.net/zm2714/article/details/8016323 re模块 开始使用re Python通过re模块提供对正则表达式的支持.使用re的一般步骤是先将 ...

随机推荐

  1. ASP.NET母版页

    ASP.NET母版页:主要是设置一致界面的页面,在固定的页中进行更新. 如图1-1所示 页头 页中(页内容) 页尾 图1-1  母版页 一般网页是固定页头和页尾,只更新页内容,来实现网页的跳转或内容的 ...

  2. Inno Setup 删除文件夹 DelTree

    Pascal Scripting: DelTree Prototype: function DelTree(const Path: String; const IsDir, DeleteFiles, ...

  3. [Qt]执行cmd命令

    要加 /c 参数 QProcess p; p.start("cmd", QStringList()<<"/c"<<"ping ...

  4. “Too many texture interpolators would be used for ForwardBase pass”

    CGPROGRAM 下加一个 #pragma target 4.0 转载于:https://www.cnblogs.com/alps/p/7101092.html

  5. 爱创课堂每日一题第五十四天- 列举IE 与其他浏览器不一样的特性?

    IE支持currentStyle,FIrefox使用getComputStyle IE 使用innerText,Firefox使用textContent 滤镜方面:IE:filter:alpha(op ...

  6. 02-线性结构4 Pop Sequence

    02-线性结构4 Pop Sequence   (25分) 时间限制:400ms 内存限制:64MB 代码长度限制:16kB 判题程序:系统默认 作者:陈越 单位:浙江大学 https://pta.p ...

  7. JS异步与同步

    这里展示一个操作场景:需要对数据进行异步处理,但这次操作可能会失败,所以需要定期对数据进行再次处理,直至处理成功. 实现:手动触发的处理以及定期触发的处理,是相同的,即可以抽取出来成一个公共函数,定期 ...

  8. hdu2544最短路

    在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助 ...

  9. Java—线程池ThreadPoolExecutor详解

    引导 要求:线程资源必须通过线程池提供,不允许在应用自行显式创建线程: 说明:使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资源不足的问题.如果不使用线程池,有可能造成系统 ...

  10. 安装KubeSphere

    1. KubeSphere 是什么 1.1. 官方解释 KubeSphere是一个分布式操作系统,提供以Kubernetes为核心的云原生堆栈,旨在成为第三方应用程序的即插即用架构,以促进其生态系统的 ...