一、re的match与search方法

  1.re.match方法  

  re.match 尝试从字符串的起始位置匹配一个模式,匹配成功re.match方法返回一个匹配的对象,如果不是起始位置匹配成功的话,match()就返回none。函数语法:

re.match(pattern, string[, flags])  

  函数参数说明:

  pattern:匹配的正则表达式

  string:要匹配的字符

  flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等

  2.match对象

  可以使用group() 、 groups()、groupdict() 匹配对象函数来获取匹配表达式。

  group([group1, …]): 获得一个或多个分组截获的字符串;指定多个参数时将以元组形式返回。group1可以使用编号也可以使用别名;编号0代表整个匹配的子串;不填写参数时,返回group(0);没有截获字符串的组返回None;截获了多次的组返回最后一次截获的子串

  groups([default]): 以元组形式返回全部分组截获的字符串。相当于调用group(1,2,…last)。default表示没有截获字符串的组以这个值替代,默认为None。

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

  

  3.re.search方法

  re.search 扫描整个字符串并返回第一个成功的匹配。匹配成功re.search方法返回一个匹配的对象,否则返回None。函数语法:

re.search(pattern, string, flags=0)

  参数说明:

  pattern:匹配的正则表达式

  string:要匹配的字符

  flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等

  程序例子:

  match与search方法的区别:

import re
reg = re.compile(r'(hello w.*)(hello l.*)')
print (dir(reg))
a = 'hello world hello ling'
result = reg.match(a)
print (result)
print (result.group()) b='aa'+a
print (b)
result2 = reg.match(b)
print (result2) #正则对象的search
print ('###############search########################')
result3 = reg.search(b)
print (result3)
print (result3.group())

结果:

  group() 、 groups()、groupdict()三种获取方式的区别:

import re
prog = re.compile(r'(?P<tagname>abc)(.*)(?P=tagname)')
result = prog.match('abclfjlad234sjldabc') print(dir(result)) print ('##########groups()##############')
print (result.groups()) print ('##########group()##############')
print (result.group(2))
print (result.group(1))
print (result.group('tagname')) print ('##########groupdict()##############')
print (result.groupdict())

结果:

二、re的split、findall、finditer方法 

  split(string[, maxsplit]):按照能够匹配的子串将string分割后返回列表。maxsplit用于指定最大分割次数,不指定将全部分割。

  findall(string[, pos[, endpos]]) :搜索string,以列表形式返回全部能匹配的子串.

  finditer(string[, pos[, endpos]]):搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。

  程序例子如下:

import re

p1 = re.compile(r'\d+')
a_str = 'one1two2three3four4' #正则对象的split方法,使用正则匹配进行分割字符串
#以列表的形式返回
print(p1.split(a_str)) #正则对象的findall方法,来查找符合对象的字符串
#最后是以列表的形式返回
print (p1.findall(a_str)) for i in p1.finditer(a_str):
print (i.group())

结果:

Python的re模块的常用方法的更多相关文章

  1. python中os模块的常用方法

    1.os模块:os模块在python中包含普遍的操作系统功能,下面列出了一些在os模块中比较有用的部分. os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符 ...

  2. python的xlwt模块的常用方法

    工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容. 1. 创建一个表,设置一个sheet import xlwt workbook = xlwt.Workbook(enc ...

  3. python中calendar模块的常用方法

    >>> import calendar >>> calendar.isleap(2000) #判断是否是闰年 True >>> calendar. ...

  4. 【308】Python os.path 模块常用方法

    参考:Python os.path 模块 参考:python3中,os.path模块下常用的用法总结 01   abspath 返回一个目录的绝对路径. 02   basename 返回一个目录的基名 ...

  5. 【Python之路】第六篇--Python基础之模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  6. python函数,模块及eclipse使用

    一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...

  7. Python中collections模块

    目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...

  8. 周末班:Python基础之模块

    什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写 ...

  9. python的datetime模块处理时间

    python的datetime模块主要用来处理时间,里面包含很多类,包括timedelay,date,time,datetime等 开发中经常会用到模块里面的datetime类,这是一个表示日期时间的 ...

随机推荐

  1. 浏览器下出现net::ERR_BLOCKED_BY_CLIENT的解决办法

    转发网址:https://www.cnblogs.com/wenzheshen/p/7724065.html 当我们在做开发时,调试页面图片会出现部分图片无法正常显示,并且确认图片的地址正确: 按F1 ...

  2. [JSOI2010]部落划分

    嘟嘟嘟 一道不错的题,解法不少. 最易于理解的是最小生成树的做法: 首先每两个点之间都连一条长度为这两个点的距离的边,形成完全图. 然后跑最小生成树,直到剩k个联通块,这时候合并成k - 1个联通块的 ...

  3. 【洛谷P1774】最接近神的人

    最接近神的人_NOI导刊2010提高(02) 用类似于桶的方法,树状数组记录原序列的某位置之前已经插入了多少个数, 插入时树状数组单点加1即可 先排一遍序,从大到小插入所有数在原序列的位置, 统计每次 ...

  4. Android学习笔记_37_ListView批量加载数据和页脚设置

    1.在activity_main.xml布局文件中加入ListView控件: <RelativeLayout xmlns:android="http://schemas.android ...

  5. requireJs sass侧边栏

    koala 下载 将sass编译为css文件 1 嵌套 2 $变量 3 @mixin 函数名(参数) 4 @include 函数    调用 5 @import "xxx"   引 ...

  6. 【JAVA】学习笔记

    对程序员来说,学习一门新的语言,最开始的代码当然是hello world!下面我们从这段代码入手,一步一步来学习Java基础知识. class Hello{ public static void ma ...

  7. view添加毛玻璃效果两种方法

    第一种方法: UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIVisualEffectV ...

  8. c#总结最近的几项重要代码

    java的代码就不说了,毕竟不是我的主业. 1.c#数据库连接池Hikari. (1)动态加载各类数据库驱动 (2)支持简单配置文件 (3)支持按照名称多数据库调用 (4)使用简洁 单数据库使用: H ...

  9. 用python爬取小说章节内容

    在学爬虫之前, 最好有一些html基础, 才能更好的分析网页. 主要是五步: 1.  获取链接 2. 正则匹配 3. 获取内容 4. 处理内容 5. 写入文件 代码如下: #导入相关model fro ...

  10. 在CentOS 7上搭建Docker环境

      Preface       We commonly use VMware or VirtualBox to install our Virtual Machines before.For the ...