python 正则表达式 compile_使用compile()函数编译正则表达式【Python技术文章】

2023-11-07

89f13428de80cb08afbd313899ed528c.gif

如果需要对一个正则表达式重复使用,那么可以使用compile()函数对其进行预编译,以避免每次编译正则表达式的开销。complie()函数语法格式如下:compile(pattern, flags=0)

上述格式中的参数pattern表示一个正则表达式,参数flags用于指定正则匹配的模式,该参数的常用取值如表1所示。

表11-1 常用的匹配模式

flags说明re.I忽略大小写

re.L做本地化识别(locale-aware)匹配,使预定义字符集\w、\W、\b、\B、\s、\S取决于当前区域设定

re.M多行匹配,影响^和$

re.S使.匹配所有字符,包括换行符

re.U根据Unicode字符集解析字符

re.A根据ASCII字符集解析字符

re.X允许使用更灵活的格式(可以是多行、忽略空白字符、可加入注释)书写正则表达式,以便表达式更易理解

complie()函数的用法如下所示:import re

regex_obj = re.compile(r'\d')

以上第2行代码中,通过compile()函数将正则的匹配模式“\d”预编译为正则对象regex_obj。

假设当前有一组字符串“Today is March 28, 2019.”,通过正则对象regex_obj的findall()方法就可以查找到所有的匹配结果,示例代码如下:words = 'Today is March 28, 2019.'

print(regex_obj.findall(words))

以上示例中的findall()函数用于获取目标文本中所有符合条件的内容。

运行代码,结果如下所示:['2', '8', '2', '0', '1', '9']如果想要匹配一组字符串中所有的英文字母,可通过设置flags参数忽略英文字母的大小写,具体代码如下:import re

regex_one = re.compile(r'[a-z]+', re.I)

words = 'Today is March 28, 2019.'

print(regex_one.findall(words))

上述代码中的匹配模式“[a-z]+”表示匹配最少匹配一次小写英文字母,当设置flags参数为re.I后该匹配模式便会忽略英文字母的大小写,匹配结果将会包含字符串words中的所有英文字母。

运行代码,结果如下所示:['Today', 'is', 'March']

猜你喜欢:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 正则表达式 compile_使用compile()函数编译正则表达式【Python技术文章】 的相关文章

  • ajax代码复用,可重用的JS ajax模式(jquery)

    我想知道是否有更好的方法来为jquery创建可重用的ajax对象 这是我未经测试的代码 var sender function ajax url type dataType callback ajax url url type type d
  • 【计算机视觉40例】案例22:目标检测(YOLO方法、SSD方法)

    导读 本文是专栏 计算机视觉40例简介 的第22个案例 目标检测 YOLO方法 SSD方法 该专栏简要介绍李立宗主编 计算机视觉40例 从入门到深度学习 OpenCV Python 一书的40个案例 目前 该书已经在电子工业出版社出版 大家
  • 21天Jenkins打卡Day10-自动触发项目构建

    参考文档 http istester com jenkins 437 html
  • 【atlas】atlas 编译报错整理(全)

    前言 最近在编译 apache altas 1 1版本 在编译过程中遇到很多报错 这里整理并记录一下 问题一 org restlet jee 包找不到 问题原因 Maven主仓库中找不到包的解决办法 如org restlet jee not
  • Linux 管道pipeline

    管道符 tar归档目录 gzip压缩 ssh传输并用cat读取标准输入到文件 tar cf kernel linux 6 4 7 gzip ssh user 192 168 123 144 cat gt destination tar gz
  • PyQt学习笔记:使用QtWidgets.qApp实现在程序中随时访问应用的方法

    PyQt学习笔记 使用QtWidgets qApp实现在程序中随时访问应用的方法 在PyQt中 QtWidgets qApp是一个全局变量 它提供了一种在程序中随时访问应用的方法 通过使用qApp 我们可以轻松地获取到应用的实例 并且可以使
  • 模式识别——特征提取(表达)

    特征表达 特征是机器学习系统的原材料 对最终模型的影响是毋庸置疑的 如果数据被很好地表达成了特征 通常线性模型就能达到满意的精度 关于特征 需要考虑以下三方面 1 特征表示的粒度 需要考虑 模型在一个什么程度上的特征表示 才能发挥效果 以图
  • tomcat堆栈中10大常见线程详解

    Tomcat作为一个服务器来讲 必然运行着很多的线程 而每一个线程究竟是干什么的 这个需要非常的清楚 无论是打印断点 还是通过jstack进行线程栈分析 这都是必须要掌握的技能 本文带你基于Tomcat7 8 9的版本 识别Tomcat堆栈
  • Cool! TineEye 图片逆向搜索

    Tineye 是世界上第一个逆向图片搜索引擎 可以根据你提交的图片在Internet找到类似图片 下面是Tineye网站上的一些搜索例子 很神奇吧 Cool Searches click image to search This page
  • 爱心代码(web前端)陈飞宇李峋同款

    文章目录 前言 一 效果图 二 操作步骤 第一步 第二步 第三步 第四步 第五步 第六步 源码 前言 最近随着电视剧 点燃我温暖你 的火热播出 剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈 爱心素材也异常火爆 我在这里整理了一份大家有需自取
  • 使用YOLOv5检测大宽高比(细长目标)时无法检测问题的解决方法

    在深度学习的工程中总会遇到许许多多的奇奇怪怪的问题 使人头大 上周五Franpper在使用yolov5 5 0训练时就遇到了这么一个奇怪的问题 在训练过程中labels一直为0 表示没有读进去标签 虽然可以训练 但是是无效训练 因为网络也不
  • 【硬件】对电源模块的梳理(包括DC-DC、LDO等不同芯片应用电路)

    目录 1 DC DC 变换器 ME3116 24V转5V JW5017S 18V转5V CX802 输入电压 4 5 80V 输出电压5V 输出电流1 2A LM2596S ADJ 输入电压3 3 40V 输出电压5V 2 LDO 低压差
  • java中网络编程UDP在线咨询案例(DatagramSocket)

    方法1 单线程 单方向发送接收 发送端 UdpTalkClient java 步骤流程 1 使用DatagramSocket 指定端口 创建发送端 2 准备数据一定转成字节数组 3 封装DatagramSocket包裹 需要指定目的地 4
  • java流程控制语句

    一 顺序结构 顺序结构 按照代码的顺序 自上而下执行 二 选择结构 A if语句 格式 a if 关系表达式 语句体 详细情况 if 关系表达式 如果关系表达式的结果是true 执行大括号中的语句 如果关系表达式的结果是false 就跳过不
  • 北航计算机学院编译技术,北航编译技术在线作业一二三

    北航编译技术在线作业一二三 由会员分享 可在线阅读 更多相关 北航编译技术在线作业一二三 16页珍藏版 请在人人文库网上搜索 1 北航编译技术在线作业一一 单选题 共 14 道试题 共 56 分 1 LR 1 文法都是 C A 无二义性且无
  • CentOS修改默认的root账号名称

    最近云服务器老是提示被爆破 为了安全起见 设置了一下hosts deny 另外还更改了默认的root账号名称 这里记录root账号修改过程 1 修改密码文件中的用户名 vi etc passwd 第一行第一个root字符修改成你想要的用户名
  • 深度学习 多分类roc曲线的绘制

    对于多分类问题 ROC曲线的获取主要有两种方法 假设测试样本个数为m 类别个数为n 在训练完成后 计算出每个测试样本的在各类别下的概率或置信度 得到一个 m n 形状的矩阵P 每一行表示一个测试样本在各类别下概率值 按类别标签排序 相应地
  • 微信企业号接收消息并自动响应

    花了2天时间做了企业号接收消息功能测试 微信官方的文档给了我很大的帮助 但是恰恰卡时间最长的 也是官方文档上的一段有误导性的说明 带我细细道来 首先把微信发送信息到企业号服务器 然后企业号自动响应的过程图示下 网上找的 感觉描述的很好 这里
  • 照片也能跳舞?仅需3秒,这个AI神器让你的照片变3D动画……

    上面的动画好玩么 他原本可不是动画 而是下面这张照片一键生成的 神不神奇 今天介绍的这个工具可以轻松实现这个效果 这个工具叫做LeiaPix Converter 可以帮助用户轻松将普通照片转换为具有运动效果的3D图片 这对于那些想要给照片添

随机推荐

  • 神经网络模型量化

    量化模型 Quantized Model 是一种模型加速 Model Acceleration 方法的总称 包括二值化网络 Binary Network 三值化网络 Ternary Network 深度压缩 Deep Compression
  • 【Java8】Guava——Function

    函数式编程 函数式编程是一种历久弥新的编程范式 比起命令式编程 它更加关注程序的执行结果而不是执行过程 Java 始终是一个面向对象 命令式 的语言 在我们使用函数式编程这种黑魔法之前 需要确认 同样的功能 使用函数式编程来实现 能否在健壮
  • 聊一聊5G定位技术

    从2G到4G 蜂窝网络的定位技术主要有 E CID AoA ToA TDOA等 从2G到4G 蜂窝网络的定位技术主要有 E CID AoA ToA TDOA等 E CID 传统基站分为三个扇区 一个扇区对应一个小区 每扇区通常120度 每个
  • 最优控制(泛函)

    1 一般的泛函就是把函数作为元素来研究的一门学科 泛函分析 举个简单一点的列子 我们以前学的函数是把数字作为基本的元素来研究的 现在更高一个层次 就是元素就是一个函数 比如全体实系数连续函数构成一个集合A 那么这个A中每一个元素就是一个函数
  • MATLAB try catch的使用

    try end try end用于尝试运行一段也许可能出错的代码 try 尝试执行的语句 end 如果E运行出错 跳过并从这里开始运行 try catch end 当程序碰到 a m n 错误后 就会跳转到catch里面的语句 继续执行 有
  • k8s新建pod一直执行creating 的解决方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 参考书籍 kubernetes权威指南第二版 相关内容 确保kubernete集群搭建成功 1 创建一个myweb rc yaml apiVersion v1 kind R
  • QCustomPlot使用技巧

    QCustomPlot使用技巧 一 一 QCustomPlot坐标轴 一个QCustomPlot里有四个坐标轴 其中xAxis yAxis xAxis2和yAxis2分别表示如图所示的4个方向的坐标轴 xAxis2和yAxis2默认隐藏 可
  • vuecli中使用express和mockjs模拟数据

    首先npm安装express和mockjs npm i express npm i mockjs http mockjs com https expressjs com en 5x api html 之后在package json内添加启动
  • 蓝牙之三-StateMachine

    蓝牙和wifi的管理上都使用到了状态机 该状态机属于分层状态机管理消息 一个状态对应于一个
  • vue3 ref()

    通常我们在获取子组件的数据和方法的操作 解决 ref 对子组件进行数据的获取以及方法的触发 不同 需要在子组件 通过defineExpose进行方法的 数据的 暴露 案例 父组件
  • Swagger 3.0 使用指南

    Swagger 3 0 使用指南 Swagger 官网地址 https swagger io 1 Swagger 是什么 API Developmentfor Everyone Simplify API development for us
  • 探究:kafka生产者/消费者与多线程安全

    目录 1 多线程安全 1 1 生产者是多线程安全的么 1 1 消费者是多线程安全的么 2 消费者规避多线程安全方案 2 1 每个线程维护一个kafkaConsumer 2 2 单 多 kafkaConsumer实例 多worker线程 2
  • fastdfs返回的url_FastDFS接口API文档说明

    一 命令行的上传 上传命令1 usr local bin fdfs upload file 例如 系统根目录下有个文件需要上传到dfs服务器上 cairo 1 2 0 tar gz 执行上传命令如下 usr local bin fdfs u
  • 浅谈数学与信息学关系

    众所周知 数学是所有理科科目的基础 在信息学竞赛中 无论是NOIP NOI乃至IOI对竞赛选手的数学水平 数学思维以及对数学模型的构造都提出了更高的要求 当然 在信息学中 在程序中并不是生搬硬套数学公式 需要有灵活的对数据的处理 高效的算法
  • 处理器对原子操作的实现

    文章目录 引入 单核 多核 引入 原子操作对于我们来说 是非常熟悉的概念 从用户角度 可以用原子操作来替换重量级的锁同步 从而提高程序性能 底层实现角度 原子操作可以用于构建各种更重量级的同步操作 比如锁或屏障之类的 对于原子操作的实现来说
  • 微信小程序开发:实现地图导航功能

    地图导航功能是近年来移动应用中极为常见的功能之一 它能够为用户提供准确的地理位置信息以及最佳的路线规划 帮助用户快速准确地找到目的地 微信小程序开发中的地图导航功能 需要通过多种技术手段综合实现 包括地图API 定位 路线规划 搜索服务等
  • STM32讲解

    目录 一 STM32简介 二 STM32命名规则 三 STM32硬件系统简介 四 STM32常用模块以及外设 4 1 STM32引脚介绍 4 1 1通用输入工作模式简介 4 1 2通用输出工作模式简介 4 2 STM32 中断简介 4 3
  • Opencv 模块计算机类型“x64”与目标计算机类型“X86”冲突

    Visual Studio 2012 模块计算机类型 x64 与目标计算机类型 X86 冲突 在使用Visual Studio 2012编译运行OpenCV的时候 出现错误 fatal error LNK1112 模块计算机类型 X86 与
  • Jmeter在windows10命令行启动显示此时不应有

    Jmeter在windows10命令行启动显示此时不应有 Jmeter配置路径正常 直接运行目录下的Jmeter bat也能运行 但是在命令行输入Jmeter便一直显示此时不应有 查了网上这种问题的解决方法 都是说环境变量路径问题 1 路径
  • python 正则表达式 compile_使用compile()函数编译正则表达式【Python技术文章】

    如果需要对一个正则表达式重复使用 那么可以使用compile 函数对其进行预编译 以避免每次编译正则表达式的开销 complie 函数语法格式如下 compile pattern flags 0 上述格式中的参数pattern表示一个正则表