正则表达式是一种通用的字符串匹配模式,使用灵活功能强大.

Python正则表达式支持的语法可以参见这张表

Python的标准模块re提供了对正则表达式的支持,使用r'' 表示正则字符串可以避免转义字符带来的麻烦, 比如'\\d'可以写作r'\d'.

module method

re.match

re.match(pattern, string, flags)

参数:pattern: 描述匹配模式的正则字符串

string: 要匹配的文本

flag: 控制匹配模式的标志位.

判断string是否符合pattern, 返回match对象包含匹配的部分:>>>import re

>>>text = 'This is Finley, welcome to join us.'

>>>m = re.match(r'\w*is\w*', text)

>>>m.group(0)

'This'

re.search

re.search(pattern, string, flags)

参数与re.match()相同, 在字符串内进行模式匹配, 找到第一个匹配后返回match对象.>>> import re

>>> text = 'This is Finley, welcome to join us.'

>>> m = re.search(r'\w*is\w*', text)

>>> m.group(0)

'This'

re.search寻找字符串内从任意位置开始的匹配, 而re.match只寻找从字符串的头部开始的匹配.

修改上例的可以发现两者的区别:>>>text = 'Here is Finley, welcome to join us.'

>>>m = re.match(r'\w*is\w*', text)

>>>m is None

True

>>>m = re.search(r'\w*is\w*', text)

>>>m.group(0)

'is'

re.findall

re.findall(pattern, string)

以列表的形式返回所有匹配的子串:>>> import re

>>> text = 'This is Finley, welcome to join us.'

>>> m = re.findall(r'\w*is\w*', text)

>>> m

['This', 'is']

re.sub

re.sub(pattern, repl, string, count)

将匹配的子串替换为repl字符串,;

count参数指定替换个数, 默认为0表示全部替换.

re.split

re.split(pattern, string)

将匹配的字符串作为分隔符, 将字符串分隔成一个列表:>>> import re

>>> text = 'This is Finley, welcome to join us.'

>>> m = re.split(r'\s+', text)

>>> m

['This', 'is', 'Finley,', 'welcome', 'to', 'join', 'us.']

Match

下文关于Match与Pattern对象的介绍转载自AstralWind

re模块中的很多方法使用Match对象表示匹配的结果, Match对象中存储了与此次匹配有关的的信息.

属性:string: 匹配时使用的文本

re: 匹配时使用的Pattern对象

pos: 文本中正则表达式开始搜索的索引。值与Pattern.match()和Pattern.seach()方法的同名参数相同

endpos: 文本中正则表达式结束搜索的索引。值与Pattern.match()和Pattern.seach()方法的同名参数相同

lastindex: 最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,将为None

lastgroup: 最后一个被捕获的分组的别名。如果这个分组没有别名或者没有被捕获的分组,将为None

方法:groups([default]):

以元组形式返回全部分组截获的字符串。

default表示没有截获字符串的组以这个值替代,默认为None。group([group1, …]):

获得一个或多个分组截获的字符串,指定多个参数时将以元组形式返回.

group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;

不填写参数时,返回group(0);没有截获字符串的组返回None;

截获了多次的组返回最后一次截获的子串。groupdict([default]):

返回以有别名的组的别名为键、以该组截获的子串为值的字典,没有别名的组不包含在内。default含义同上。start([group]):

返回指定的组截获的子串在string中的起始索引(子串第一个字符的索引)。group默认值为0end([group]):

返回指定的组截获的子串在string中的结束索引(子串最后一个字符的索引+1)。group默认值为0span([group]):

返回(start(group), end(group))。expand(template):

将匹配到的分组代入template中然后返回

template中可以使用\id或\g、\g引用分组,但不能使用编号0

\id与\g是等价的;但\10将被认为是第10个分组,如果你想表达\1之后是字符'0',只能使用\g<1>0。

Pattern

Pattern对象是一个编译好的正则表达式,通过Pattern提供的一系列方法可以对文本进行匹配查找.

Pattern不能直接实例化,必须使用re.compile()进行构造.

re模块方法均有Pattern实例方法作为对应版本.

Pattern提供了几个可读属性用于获取表达式的相关信息:pattern: 编译时用的表达式字符串

flags: 编译时用的匹配模式,数字形式。

groups: 表达式中分组的数量

groupindex: 以表达式中有别名的组的别名为键、以该组对应的编号为值的字典,没有别名的组不包含在内。

python正则表达式模块_Python正则表达式模块re相关推荐

  1. python正则表达式模块_Python正则表达式函数模块

    今天学习了Python中有关正则表达式的知识.关于正则表达式的语法,不作过多解释,网上有许多学习的资料.这里主要介绍python中常用的正则表达式处理函数. 方法/属性 作用 match() 决定 R ...

  2. python re模块_python 正则表达式 (重点) re模块

    京东的注册页面,打开页面我们就看到这些要求输入个人信息的提示. 假如我们随意的在手机号码这一栏输入一个11111111111,它会提示我们格式有误. 这个功能是怎么实现的呢? 假如现在你用python ...

  3. python中怎样使用re模块_PYTHON正则表达式 re模块使用说明

    首先,运行 Python 解释器,导入 re 模块并编译一个 RE: #!python Python 2.2.2 (#1, Feb 10 2003, 12:57:01) >>> im ...

  4. python 正则表达式方法_Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

  5. python正则表达式操作指南_Python正则表达式操作指南

    原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...

  6. python正则表达式指南_Python正则表达式指南(转)

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  7. python正则表达式代码_python正则表达式的使用(实验代码)

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  8. python 正则表达式生成_python正则表达式

    字符串是我们在编程的时候经常用到的一种数据类型,检查会在字符串里面查找一些内容,对于比较简单的查找,字符串的一些内置的方法就可以处理,对于比较复杂的字符串,或者有一些内容经常变化的字符串查找,那么我们 ...

  9. python正则库_python 正则表达式第三方库 re的基本使用

    re模块简介: 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,而re模块就是python中实现正则的模块 正则表达式简介: 非打印字符: 非打印字符也可以是正则表达 ...

  10. python 正则表达式判断_Python 正则表达式

    跟随练习: import re original_string = r"ABC\-001" rexp_string = r'\w{3}\\\-\d{3}' result = re. ...

最新文章

  1. iOS:一句代码实现文本输入的限制
  2. 嵌入式的我们为什么要学ROS
  3. 大数模板(加减乘除幂次开方)
  4. Expected a key while parsing a block mapping. assets: ^
  5. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
  6. 功能测试话题分享-0323
  7. boost::geometry::disjoint用法的测试程序
  8. 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。...
  9. 阿里云发布聆听平台 全球招募300位MVP
  10. jQuery 文本编辑器插件 HtmlBox 使用
  11. pg库使用dblink连接mysql_PG-跨库操作-dblink
  12. 51CTO技术沙龙网管工具分享之工具包、PPT、视频
  13. 软件工程毕设(二)·任务书
  14. 微信公共号开发教程java版——基础知识和环境搭建(一)
  15. 淘宝运营之:店铺信用分计算规则
  16. 彻底解决[未识别的网络][公共网络]的问题
  17. 手机照片丢失怎么才能恢复
  18. Python基础教程目录
  19. AWS Academy 学习平台建立 Learner Lab - 教师
  20. 【博弈论】Nim游戏

热门文章

  1. 海南省重点公共场所WiFi覆盖率达到97.7%
  2. 运用Loadrunner测试Mysql数据库性能
  3. MySQL密码忘记,怎么办?
  4. 项目中js文件修改后浏览器不能及时更新的解决办法
  5. Nginx之二:nginx.conf简单配置(参数详解)
  6. 用delphi模仿.net的string.split
  7. 计算机系统的组成doc,简述计算机系统的组成.doc
  8. opengl画的弧线 为什么有一个半径_6个1画生日蛋糕,也太简单啦【图文+视频教程】...
  9. python在windows 输入和输出文件_Python文件、目录和输入输出操作
  10. 如何解决mysql数据倾斜_什么是数据倾斜?如何解决数据倾斜?