【python标准库学习】re模块

2023-11-13

1.什么是re

        正则表达式一门相对通用的语言,在python中也有对正则表达式的支持,那就是的内置re模块。正则表达式就是一系列的规则去匹配字符串然后进行相应的操作,这些规则网上一搜一大片,而re则是运用正则表达式来提供一系列的功能强大的接口让我们来调用。通常我们在对日志文件进行操作的时候会对正则表达式运用的比较多来得到我们希望得到的数据。

2.python中的转义符

        正则表达式中通常用反斜杠'\'来代表转义,'\d'代表数字等,但是python本身也是通过反斜杠'\'来表示转义,所以就和正则表达式中的相冲突了,所以在python的re中两个反斜杠才能表示正则表达式中的一个,我们在正则表达式中要匹配一个反斜杠字符的时候就必须要写两个反斜杠,所以如果我们要匹配一个反斜杠那么就必须在re中写四个反斜杠,这是一个相当麻烦且容易出错的地方。

        python中提供了原始字符串raw,一个以r开头的字符串表示这个是原始字符串,它就不会对特殊字符进行解析,比如反斜杠'\'就表示一个字符而不是转义符。所以在re中我们经常使用这种原始字符串。

3.re的使用

        python通过re模块提供对正则表达式的支持,使用re模块一般是先将正则表达式的字符串形式编译成Pattern对象,然后用Pattern对象来处理文本得到一个匹配的结果,也就是一个Match对象,最后通过Match得到我们的信息并进行操作。

[learnpython@localhost learn]$ python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> help(re.compile)
Help on function compile in module re:

compile(pattern, flags=0)
    Compile a regular expression pattern, returning a pattern object.
(END) 

        通过help可以看到compile方法的介绍,返回一个pattern对象,但是却没有对第二个参数flags进行介绍。第二个参数flags是匹配模式,可以使用按位或'|'表示同时生效,也可以在正则表达式字符串中指定。Pattern对象是不能直接实例化的,只能通过compile方法得到。匹配模式有:

        1).re.I(re.IGNORECASE): 忽略大小写

        2).re.M(MULTILINE): 多行模式,改变'^'和'$'的行为

        3).re.S(DOTALL): 点任意匹配模式,改变'.'的行为

        4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定

        5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性

        6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释

        也可以直接将正则表达式字符串当做参数传进方法,就不用写一行compile代码,这样其实还是会将其编译成Pattern对象再匹配。

import re

pattern = re.compile(r're')
pattern.match('This is re module of python')
re.compile(r're', 'This is re module of python')
# 以上两种方式是一样的
# 以下两种方式是一样的
pattern1 = re.compile(r&
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python标准库学习】re模块 的相关文章

随机推荐

  • Nikitosh and xor【字典树+dp】

    题目链接 比较明显的 正向一个推过去的字典树 再反向退回来的一个字典树 然后异或和用差分的方式解决 字典树一定是要从第29位开始往下的 千万别从第0位往上 include
  • JavaScript常用的5种排序算法,你都掌握了吗?

    今天给大家带来5种最常见的前端排序算法 注释非常详细 欢迎讨论 1 冒泡排序 Bubble Sort 定义 冒泡排序是一种简单的比较排序算法 它重复地比较相邻的元素 并将顺序错误的相邻元素交换位置 直到整个序列排序完成 代码示例 funct
  • int 0x80系统调用的参数传递规则

    系统调用的参数传递规则 传递给系统调用的参数则必须按照参数顺序依次存放到寄存器ebx ecx edx esi edi中 当系统调用完成之后 返回值存放在eax中 A 当系统调用所需参数的个数不超过5个的时候 执行 int 0x80 指令时
  • Chroom书签同步

    Chroom自带书签管理 而且有些管理书签的插件 我感觉自带书签管理栏就能满足我的个人需求 但是有一个问题 当我换了电脑后 原来的书签怎么同步 我为什么要使用Chroom 用其他浏览器广告太多了 比如360 也试着使用国内的其他浏览器 感觉
  • 如何在vscode配置php开发环境

    3 下载并安装vscodehttps code visualstudio com 下载的是一个压缩包 将其解压至一个目录 4 在vscode中安装调试插件右侧栏中点击扩展 输入xdebug 出来的php debug 点击安装 在菜单栏 文件
  • C++ 常用容器及其使用方法

    文章目录 本章内容概述 一 Vector 1 构造函数 2 增加函数 3 删除函数 4 属性函数 二 Unordered map 1 构造函数 2 增加函数 3 删除函数 4 属性函数 三 Stack 1 构造函数 2 访问方式 3 增加函
  • python: pandas与numpy(一)创建DataFrame数组与数组的简单操作

    目录 前言 1 创建Series数组 2 创建DataFrame数组 使用字典来创建DataFrame 使用列表来创建DataFrame 使用Series数组创建DataFrame 使用numpy函数创建DataFrame 3 在DataF
  • logback.xml

  • Mayor‘s posters(线段树染色)

    题目链接 Mayor s posters 2023 4 13 更新了代码 修复了错误的离散化长度 已在代码中注出 大致题意 有n个人依次贴海报 第i个海报的范围是 li ri 后面贴的海报会覆盖掉之前贴的海报 问 最终还能看到多少张海报 解
  • java的3大注释快捷键大全

    单行注释 行注释 一般用于单行或者少量代码 快捷键 光标 ctrl 或者 多行注释 块注释 一般用于多行或者大量代码 快捷键 选中 ctrl shift 文档注释 方法或类注释 一般用于对类和方法的说明 快捷键 光标 回车键 EnTer
  • 蓝桥杯Java必备基础知识总结大全【3W字】持续更新中

    本文会持续更新 如果对您有帮助的话可以点点关注 双击 本人2021年蓝桥杯C B组国二 今年转战Java 并整理此文 希望能够对大家有所帮助 第一次写这么长的文章 可能有的地方写的不是很好 还请大家多多谅解 我会持续进行改进并且更新 更新
  • 海思(MPP)媒体处理软件平台(3)-----VDEC

    sample vdec 视频解码 测试环境 在HI3531D开发板上运行 查看代码使用VSCode 运行 nfsroot mpp sample vdec sample vdec please choose the case which yo
  • [激光原理与应用-68]:光耦继电器、固态继电器、延时继电器、PLC开关信号

    一 PLC开关信号 备注 PLC需要的是开关信号 闭合或断开 不需要TTL电平信号 二 激光器输出信号 三 固态激光器工作原理 四 光耦继电器原理 五 光耦 延时 继电器原理 六 差分转单端原理
  • 排列组合知识

    排列组合的定义 排列 就是从n个元素中取出m个元素 按照一定的顺序排成一列 看到没 是要有顺序排成一列的 组合 也是从n个元素中取出m个元素 只不过是组成一个组 并不要求排成一列 只要组的成员不同就可以了 公式如下 例题 哪里用得上排列组合
  • 【Markdown】图片缩放

    01 原图表示 语法为 替代文本 图片链接地址 其中 替代文本是在无法显示图片时显示的替代文本 而图片链接是指向图片的URL或相对路径 例如 插入Panda图片 panda https img blog csdnimg cn e5f32e4
  • 亚信科技AntDB数据库专家参加向量数据库首次技术标准研讨会

    2023年7月19日下午 中国通信标准化协会大数据技术标准推进委员会数据库与存储工作组 CCSA TC601 WG4 联合中国信通院数据库应用创新实验室 CAICT DBL 在线上召开 向量数据库技术要求 标准首次研讨会 本次会议由中国信通
  • 单端反激——隔离型DC/DC变换器的设计及仿真

    单端反激 隔离型DC DC变换器的设计及仿真 技术指标 1 原理分析 2 参数设计 3 仿真验证 技术指标 输入电压 V s m i n
  • Spring Boot 2.2.6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三

    Spring Boot 2 2 6 源码之旅二十五SpringMVC源码之RequestMappingHandlerMapping的初始化三 简单流程图 MappingRegistry的一些映射 urlLookup一键多值的url和Requ
  • 那些会阻碍程序员成长的细节[4]

    照例 如果没有读过之前的系列 在这里可以先回顾一下 那些会阻碍程序员成长的细节 1 那些会阻碍程序员成长的细节 2 那些会阻碍程序员成长的细节 3 本文共 1637 字 预计阅读时间 5 分钟 不愿意跟领导走的近 是不是有这样的体会 凡事有
  • 【python标准库学习】re模块

    1 什么是re 正则表达式一门相对通用的语言 在python中也有对正则表达式的支持 那就是的内置re模块 正则表达式就是一系列的规则去匹配字符串然后进行相应的操作 这些规则网上一搜一大片 而re则是运用正则表达式来提供一系列的功能强大的接