re模块的常用方法

1、compile(pattern[,flags])

创建模式对象,一般配合其他方法使用。例如:

import re            #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\bd\w+\b') #编译正则表达式对象,查找以d开头的单词
print(pattern.findall(text)) #使用正则表达式对象的findall()方法

结果是:

2、search(pattern,string[,flags]) && match(pattern,string[,flags])

search()方法是在整个字符串中寻找模式,返回匹配的对象或者None。用于在整个字符串或指定范围中进行搜索。

match()方法是从字符串的开始处匹配模式,返回匹配的对象或者None。用于在字符串开头或指定位置进行搜索,模式必须出现在字符串开头或指定位置。例如:

import re            #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\b[a-zA-Z]{4}\b') #查找4个字母长的单词
print(pattern.match(text)) #从字符串开头开始匹配,失败返回空值
print(pattern.search(text)) #在整个字符串中搜索,成功

结果是:

3、findall(pattern,string[,flag])

列出字符串中模式的所有匹配项。用于在字符串中查找所有符合正则表达式的字符串并以列表形式返回。例如:

import re            #导入re模块
text = 'All that doth flow we cannot liquid name' #测试用的字符串
pattern = re.compile(r'\b\w*a\w*\b') #查找所有含有字母a的单词
print(pattern.findall(text))
example = 'Or else would fire and water be the same;'
print(re.findall(r"\w+er",example)) #查找所有以字母组合ly结尾的单词

结果是:

4、split(pattern,string[,maxsplit=0])

根据模式匹配项分割字符串。例如:

import re            #导入re模块
text = 'All..that...doth.flow...we.cannot...liquid name' #测试用的字符串
print(re.split('[\.]+',text)) #使用指定字符作为分隔符进行分割
print(re.split('[\.]+',text,maxsplit=3)) #最多分隔3次
print(re.split('[\.]+',text,maxsplit=2)) #最多分隔2次
print(re.split('[\.]+',text,maxsplit=1)) #最多分隔1次

结果是:

5、sub(pat,repl,string[,count=0])

将字符串中所有pat的匹配项用repl替换。例如:

import re            #导入re模块
text = '''All that doth flow we cannot liquid name
Or else would fire and water be the same;
But that is liquid which is moist and wet
Fire that property can never get.
Then 'tis not cold that doth the fire put out
But 'tis the wet that makes it die, no doubt.''' #测试用的字符串
pattern = re.compile(r'\bt\w*\b',re.I) #匹配以t或T开头的单词
print(pattern.sub('%',text)) #将符合条件的单词替换为%
print()
print(pattern.sub('%',text,1)) #只替换1次

结果是:

注意:函数参值flags的值可以是re.I(表示忽略大小写);re.L(支持本地字符集的字符);re.M(多行匹配模式);re.S(使元字符“.”匹配任意字符);re.U(匹配Unicode字符);re.X(忽略模式中的空格,并可以使用#注释)的不同组合。

正则表达式re模块小结的更多相关文章

  1. Python常用模块小结

    目录 Python常用模块小结 一.Python常用模块小结 1.1 time模块 1.2 datetime模块 1.3 random模块 1.4 os模块 1.5 sys模块 1.6 json模块 ...

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

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

  3. python 正则表达式re模块

    #####################总结##############    优点:  灵活, 功能性强, 逻辑性强.               缺点:  上手难,旦上手, 会爱上这个东西    ...

  4. python基础之正则表达式 re模块

    内容梗概: 1. 正则表达式 2. re模块的使⽤ 3. 一堆练习正则表达式是对字符串串操作的一种逻辑公式. 我们一般使用正则表达式对字符串进行匹配和过滤.使用正则的优缺点: 优点: 灵活,功能性强, ...

  5. python记录_day23 正则表达式 re模块

    一. 正则表达式 使用python的re模块之前应该对正则表达式有一定的了解 正则表达式是对字符串操作的一种逻辑公式.我们一般使用正则表达式对字符串进行匹配和过滤. 正则的优缺点: 优点:灵活, 功能 ...

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

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

  7. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  8. 基于iCamera测试mt9m034 1280X960 高动态相机模块小结

    基于iCamera测试mt9m034 高动态相机模块小结 首先看看此模块的特性 mt9m034 高动态 CMOS模块 1280*960像素 5.48 V/lux-sec >115db 摄像头模块 ...

  9. 基于iCamera测试500w摄像头-mt9p001,mt9p031,mt9p001模块小结

    基于iCamera测试500w摄像头-mt9p001,mt9p031,mt9p001模块小结 先看实物 M12标准无畸变镜头效果 标准CS镜头效果 iCamera底板+mt9p001安装效果 再看看c ...

随机推荐

  1. Asp.Net中使用JQueryEasyUI--善良公社项目

    jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互.动画.特效和可更换主题的可视控件.我们可以直接用它来构建具有很好交互性的web应用程序 ...

  2. ARM Linux内核Input输入子系统浅解

    --以触摸屏驱动为例 第一章.了解linux input子系统         Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些 ...

  3. webService详解(一)

    [sql] 什么是webService  WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用.   1:从WebServi ...

  4. PSAM 卡的应用 操作方法

    PSAM 卡的应用        PSAM 功能 终端安全存储模块        PASM  常用于 脱机交易的 安全认证        脱机交易的流程          1.卡片对持卡人的认证(防止 ...

  5. [转]smail语法 详解

    大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(Google Play下载的完整版版 ...

  6. Android NFC技术(三)——初次开发Android NFC你须知道NdefMessage和NdefRecord

    Android NFC技术(三)--初次开发Android NFC你须知道NdefMessage和NdefRecord 这最近也是有好多天没写博客了,除了到处张罗着搬家之外,依旧还是许许多多的琐事阻碍 ...

  7. MySql常用操作语句(1:启动、连接数据库及用户操作)

    下方将个人常用的MySql操作语句(Win7下)总结如下: 1. 启动与关闭数据库 “管理员”权限, MySql安装目录下bin目录//:  1.1 启动 @>net start mysql   ...

  8. Xcode and #pragma mark

    原帖地址:http://macdevelopertips.com/xcode/xcode-and-pragma-mark.html I've started using #pragma mark di ...

  9. 关于UIView用户交互相关的属性和方法

    UIView除了负责展示内容给用户外还负责响应用户事件 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为NO则不响应用户事件,并且把当前控件从事件队列中删除 ...

  10. [Zabbix3.0] 添加MySQL监控

    zabbix3.0 server已经自带MySQL的模板了,只要修改agent端,然在web端给主机添加模板就好了. Agent端操作 /etc/zabbix/zabbix_agentd.d/user ...