Python的re模块的常用方法
一、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模块的常用方法的更多相关文章
- python中os模块的常用方法
1.os模块:os模块在python中包含普遍的操作系统功能,下面列出了一些在os模块中比较有用的部分. os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符 ...
- python的xlwt模块的常用方法
工作中需要导出数据为excel格式,使用了xlwt模块,在此记录一下用到的内容. 1. 创建一个表,设置一个sheet import xlwt workbook = xlwt.Workbook(enc ...
- python中calendar模块的常用方法
>>> import calendar >>> calendar.isleap(2000) #判断是否是闰年 True >>> calendar. ...
- 【308】Python os.path 模块常用方法
参考:Python os.path 模块 参考:python3中,os.path模块下常用的用法总结 01 abspath 返回一个目录的绝对路径. 02 basename 返回一个目录的基名 ...
- 【Python之路】第六篇--Python基础之模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- python函数,模块及eclipse使用
一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...
- Python中collections模块
目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...
- 周末班:Python基础之模块
什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写 ...
- python的datetime模块处理时间
python的datetime模块主要用来处理时间,里面包含很多类,包括timedelay,date,time,datetime等 开发中经常会用到模块里面的datetime类,这是一个表示日期时间的 ...
随机推荐
- fastcgi+lighttpd+c语言 实现搜索输入提示
1.lighttpd 服务器 lighttpd是一个比较轻量的服务器,在运行fastcgi上效率较高.lighttpd只负责投递请求到fastcgi. centos输入yum install ligh ...
- MySQL:数据库入门篇2
#移除主键时需要先解除递增,才能解除主键 alter table info modify id int null , drop PRIMARY key 一.用户权限 1.创建用户 create use ...
- python:生产者与消费者模型
1,生产者与消费者模型的矛盾在于数据供需的不平衡 import time import random from multiprocessing import Queue from multiproce ...
- Codeforces 7C 扩展欧几里得
扩展欧几里得是计算 ax + by = gcd(a,b) 的 x,y的整数解. 现在是ax + by + c = 0; 只要 -c 是 gcd(a,b) 的整数倍时有整数解,整数解是 x = x*(- ...
- maven项目 servlet jar包冲突
Failed to process JAR found at URL for ServletContainerInitializers for context with name [{1}] 启动报 ...
- git报错error: src refspec refs/heads/master does not match any.
$ git pusherror: src refspec refs/heads/master does not match any.error: failed to push some refs 出错 ...
- Python—面向对象05 反射
反射,通过字符串映射到对象属性 class People: country='China' def __init__(self,name,age): self.name=name self.age ...
- ng-repeat 指令(带有数组)
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- JavaScript js调用堆栈(一)
本文主要介绍JavaScript程序内部的执行机制 首先先了解什么是执行上下文 执行上下文就是当前JavaScript代码被解析和执行是所在环境的抽象概念,JavaScript中运行任何的代码都是在执 ...
- wsgiref手写一个web服务端
''' 通过wsgiref写一个web服务端先讲讲wsgiref吧,基于网络通信其根本就是基于socket,所以wsgiref同样也是通过对socket进行封装,避免写过多的代码,将一系列的操作封装成 ...