比较详细Python正则表达式操作指南(re使用)[11]

Python之正则表达式模块(re)详解 本文章以授权于微信公众号:CodeId 有什么建议可以到公众号里进行留言。 在上一篇文章Python之正则表达式基础语法中我们简单的学习了正则表达式的一些基础语法,今天这篇文章将讲一下python如何使用正则表达式,它有那些方法。 正则表达式模块(re)内容 re模块是python的一个库,里面有很多方法可以对正则表达式进行运用。 re.search(pattern,... 阅读详情

在下面的例子里,替换函数将十进制翻译成十六进制:

#!python

>>> def  hexrepl( match ):

 "Return the hex string for a decimal number"


 value
  =  int( match.group() )

 return
  hex(value)



>>> p = re.compile(r'"d+'
)

>>> p.sub(hexrepl, 'Call 65490 for printing, 49152 for user code.'
)

'Call 0xffd2 for printing, 0xc000 for user code.'

当使用模块级的 re.sub() 函数时,模式作为第一个参数。模式也许是一个字符串或一个 `RegexObject`;如果你需要指定正则表达式标志,你必须要么使用 `RegexObject` 做第一个参数,或用使用模式内嵌修正器,如 sub("(?i)b+", "x", "bbbb BBBB") returns 'x x'。

 

常见问题

正则表达式对一些应用程序来说是一个强大的工具,但在有些时候它并不直观而且有时它们不按你期望的运行。本节将指出一些最容易犯的常见错误。

使用字符串方式

有时使用 re 模块是个错误。如果你匹配一个固定的字符串或单个的字符类,并且你没有使用 re 的任何象 IGNORECASE 标志的功能,那么就没有必要使用正则表达式了。字符串有一些方法是对固定字符串进行操作的,它们通常快很多,因为都是一个个经过优化的C 小循环,用以代替大的、更具通用性的正则表达式引擎。


举个用一个固定字符串替换另一个的例子;如,你可以把 "deed" 替换成 "word"。re.sub() seems like the function to use for this, but consider the replace() method. 注意 replace() 也可以在单词里面进行替换,可以把 "swordfish" 变成 "sdeedfish",不过 RE 也是可以做到的。(为了避免替换单词的一部分,模式将写成 "bword"b,这是为了要求 "word" 两边有一个单词边界。这是个超出替换能力的工作)。


另一个常见任务是从一个字符串中删除单个字符或用另一个字符来替代它。你也许可以用象 re.sub('"n',' ',S) 这样来实现,但 translate() 能够实现这两个任务,而且比任何正则表达式操作起来更快。


总之,在使用 re 模块之前,先考虑一下你的问题是否可以用更快、更简单的字符串方法来解决。

match() vs search()

match() 函数只检查 RE 是否在字符串开始处匹配,而 search() 则是扫描整个字符串。记住这一区别是重要的。记住,match() 只报告一次成功的匹配,它将从 0 处开始;如果匹配不是从 0 开始的,match() 将不会报告它。

#!python

>>> print re.match('super', 'superstition' ).span()

(0,
 5
)

>>> print re.match('super', 'insuperable'
)

None

另一方面,search() 将扫描整个字符串,并报告它找到的第一个匹配。

#!python

>>> print re.search('super', 'superstition' ).span()

(0,
 5
)

>>> print re.search('super', 'insuperable'
).span()

(
2, 7)

有时你可能倾向于使用 re.match(),只在RE的前面部分添加 .* 。请尽量不要这么做,最好采用 re.search() 代替之。正则表达式编译器会对 REs 做一些分析以便可以在查找匹配时提高处理速度。一个那样的分析机会指出匹配的第一个字符是什么;举个例子,模式 Crow 必须从 "C" 开始匹配。分析机可以让引擎快速扫描字符串以找到开始字符,并只在 "C" 被发现後才开始全部匹配。

添加 .* 会使这个优化失败,这就要扫描到字符串尾部,然後回溯以找到 RE 剩馀部分的匹配。使用 re.search() 代替。

【VAE学习笔记】全面通透地理解VAE(Variational Auto Encoder) 完整笔记:http://www.gwylab.com/note-vae.html 李宏毅老师的教程视频:https://www.bilibili.com/video/av15889450/?p=33 —————————————————————————————————   依据李宏毅老师的讲解,我整理了一番VAE的笔记。先简单介绍一下VAE,VAE作为一个生成模型,其基本思路是很容易理解的:把一堆真... 阅读详情

相关推荐

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

python正则表达式——re模块的使用

python正则表达式——学习re模块 本文所有的代码使用的python版本为python3.5.1,运行环境为Ubuntu 16.04 LTS, GCC 5.3.1. 本文参考的python文档版本为python3.5.2,强烈建议英语不错的同学直接读文档。这篇博客只是作者阅读文档时的学习笔记,若有纰漏请指出,让我们共同进步。正则表达式基础介绍正则表达式正则表达式re是python自带的模块,

大音希声大象无形 1万+

Conda换源全攻略:从清华源到默认源的保姆级切换教程(附常见问题解决)

本文提供Conda换源的完整教程,详细讲解如何从清华源切换到默认源,包括配置步骤、常见问题解决方案及高级技巧。针对国内开发者遇到的下载速度慢问题,清华源提供了高速稳定的解决方案,同时文章也介绍了恢复默认源的方法和多种镜像源选择。

weixin_28837817的博客 940

Python学习心得正则表达式及re模块的使用

正则表达式

wjl112600的博客 2865

高速SerDes均衡技术解析

均衡技术是高速SerDes链路中补偿信道损耗和失真的核心技术,通过FFE、CTLE和DFE三种主要方法对抗码间干扰(ISI)。FFE在发射端预补偿前光标干扰,CTLE通过提升高频增益补偿信道损耗,DFE则精准消除后光标干扰。三种技术各具优势:FFE实现简单且不放大噪声,CTLE功耗低易于集成,DFE能自适应调整且保持信噪比。这些技术协同工作可有效提升系统传输速率和可靠性。

一只豌豆象的博客 1947

中微8S6990外设开发实战:从GPIO配置到低功耗休眠的完整指南

本文提供了中微8S6990增强型8051单片机从GPIO配置到低功耗休眠的完整实战指南。详细讲解了开发环境搭建、GPIO灵活配置、定时器中断、ADC采样优化、PWM电机控制等核心外设的编程要点与避坑技巧,并重点阐述了实现超低功耗休眠的系统性外设管理策略,帮助开发者快速上手并优化产品续航。

weixin_29162439的博客 533

python正则表达式re各常用函数详解

pattern:被替换的字符串repl:替换成什么str,支持调用自定义函数string:字符串,句子count:替换的次数,默认0为无数次flags:控制正则表达式的匹配方式,如是否区分大小写,多行匹配等import reprint('替换全部word:')print(a)print('\n替换一次word:')print(b)print('\n替换全部word,忽略大小写:')print(c)图17 正则替换 re.sub()

m0_71559726的博客 3017

windows10下 iperf3测试带宽

客户端输入:"iperf3.exe -u -c 服务器IP地址 -b 5g" //客户端给服务器发送udp数据包,最大带宽为5g。客户端输入:“iperf3.exe -c 服务器IP地址 -P 10“//表示客户端10路并行给服务器发送TCP包;上图可知:带宽是15Gbps(这里不知道为什么下面测试的UDP会比这里TCP慢 按道理UDP不可能比TCP慢的5.)3. 验证是否下载成功,在打开的窗口中输入“iperf3.exe -v”,会出现安装的版本,表示安装成功了。5. iperf3参数。

xiaoqixiaoguai的博客 5889

Python爬虫从入门到精通——解析库re的使用:正则表达式

分类目录:《Python爬虫从入门到精通》总目录 正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。对于爬虫,基于正则表达式,从HTML里提取想要的信息就非常方便了。 正则表达式有特定的语法规则的。写好正则表达式后,就可以拿它去一个长字符串里匹配查找了。不论这个字符串里面有什么,只要符合我们写的规则,统统可以找出来。对于网页来说,如果想找...

冯·诺依曼 4万+

GCdepth散点图绘制

基因组组装完成后,需要对组装结果进行评估,其中GC_depth图是一个比较重要的指标,改图的横坐标是GC含量,纵坐标是平均深度。以30k为窗口(window)无overlap计算其GC含量和平均深度。如果存在样品污染,通常能够从GC含量分析中呈现出来。下文探索了几种绘制GC_depth散点图的方法思路。

huangliangbo的专栏 8993

学习海康VisionMaster之BLOB分析

6):软阈值(相对):是一种动态阈值分割方法,其核心思想是 基于图像局部特性(如背景或参考区域)自适应调整阈值范围,适用于光照变化明显、背景灰度不均的场景。3:拖入位置修正功能:这个非常重要,模版匹配成功后会得到新的匹配坐标,那和创建模版时候的原点坐标会组合成一个坐标变换矩阵,通过这个矩阵,那后续的blob分析窗口则可以实现精确定位来查找目标对象。(2):设定参数:这里阈值方式是blob的核心算法,根据不同的应用场景来选择不同的阈值方式。8:高级参数:是设定blob区域的特征范围,用于筛选出来特定的区域。

yuhouxiyang的专栏 3618

Python 基础 (标准库):re (正则表达式操作)

Python 标准库学习:re

AbigailQin 的博客 7797

AutoSAR系列讲解(入门篇)1.2-AutoSAR概述

这里主要说明了AutoSAR是个什么,还有其工具链

雪云飞星的博客 5万+

Python 正则表达式模块 re

flyfish

二分掌柜的 2865

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python正则表达式-re模块奇技淫巧

正则表达式`re`模块最重要的功能就是过滤,从目标中过滤出所需的数据,然后再通过函数组合等,从字符串中过滤出任何特征的数据,是后续Python爬虫解析数据的基础。

有一分热,发一分光。 8734

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python爬虫从入门到精通——基本库re的使用:正则表达式

置顶:华为云618大促火热进行中,全场1折起,免费抽主机,消费满额送P30 Pro,点此抢购。 正则表达式是处理字符串的强大工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。对于爬虫,基于正则表达式,从HTML里提取想要的信息就非常方便了。 正则表达式有特定的语法规则的。写好正则表达式后,就可以拿它去一个长字符串里匹配查找了。不论这个字符串里面有什么,只要...

华为云官方博客 4165

python-re正则表达式的使用

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配 在python中,使用re模块来处理正则表达式 re模块提供了一组函数,允许你在字符串中进行模式匹配,搜索和替换操作 re模块使python语言拥有完整的正则表达式功能

chinese_cabbage0的博客 984

关于Python中re模块的详细使用说明

# 关于Python中re模块使用 import re ''' re模块对正则表达式的使用步骤一般有三步: 1、re.compile(正则表达式) 将正则表达式字符串编译为Pattern实例 2、用pattern实例去处理文本并获得匹配结果(比如一个Match实例) 3、然后用Match实例去获得信息 ''' # 这里先介绍几个常用的Pattern对象常用的方法: pa

three_co的博客 9788

比较详细Python正则表达式操作指南(re使用)[4]

#!python >>> iterator = p.finditer('12 drummers drumming, 11  10 ') >>> iterator callable-iterator object at 0x401833ac> >>> for match in iterator:  print match.span() (0, 2)

CsharpGame的专栏 1101

详细解析python正则表达式re模块

本篇文章给大家带来了关于python的相关知识,其中主要介绍了关于正则表达式中re模块的相关问题,下面一起来看一下,希望对大家有帮助。 在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。正则表达式的大致匹配过程是: 1.依次拿出表达式和文本中的字符比较, 2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。 3.如果表达式中有量词或边界,这个过程会稍微有一些不同。r:Python 中字符串的前导 代表原始字符串标识符,该字符串中

QQ860234001的专栏 1107

Python的Re库详解(正则表达式)

先贴一篇很好的正则表达式博文:https://www.cnblogs.com/darkterror/p/6474211.html 以及关于贪婪与懒惰匹配的博文:https://blog.youkuaiyun.com/wzygis/article/details/43339241 一.正则表达式的语法 1.正则表达式语法由字符和操作符构成。 2.正则表达式的常用操作符: (1). ...

马马也的个人博客 1171

第11.25节 Python正则表达式编译re.compile及正则对象使用

一、 引言 在《第11.2节 Python 正则表达式支持函数概览》介绍了re模块的主要函数,在《第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer》重点介绍了几个搜索函数。这些介绍的搜索函数都是直接使用正则表达式去匹配搜索文本,实际上re模块还支持将正则表达式先编译再搜索匹配,这种先编译后搜索在同一个正则表达式多次去执行...

老猿Python 3205

python中re的安装步骤_python re库的正则表达式入门学习教程

简介正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行。下面话不多说了,来一起看看详细的介绍吧1. 安装默认已经安装好了python环境了re库是python3的核心库,不需要pip install,直接import就行2. 最简单的模式字符本身就是最简单...

weixin_39927288的博客 1237

Python3笔记之正则表达式re(查找11位数字)

接上一篇博客【Python3笔记之split分割1】 一、平台 windows7、python3.7 二、内容文件[info] 姓名 地区 身高 体重 电话 张三 北京 177 40 13800138001 李四 上海 170 49 13800138002 打啊 南京 171 48 13800138003 凯恩 河南 173 50 13800138004 卡恩 郑州 180 51 138...

潇洒哥的运维之道 1万+

python re库的使用(正则表达式笔记)

模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾。 . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 […] 用来表示一组字符,单独列出:[amk] 匹配 ‘a’,‘m’或’k’ [^…] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。 re* 匹配0个或多个的表达式。 re+ 匹配1个或...

AI出海日记 832

Python高级教程(1)——正则表达式(re.match、re.search、re.sub、compile、findall、finditer、split)、正则表达式对象、正则表达式实例

Python高级教程(1)——正则表达式(re.match、re.search、re.sub、compile、findall、finditer、split)、正则表达式对象、正则表达式实例

sunshine_boy1的博客 6728

Python re正则表达式

re 正则模块 正则指的是一种规则(或是一种表达式):用于匹配字符串 主要作用就是通过正则表达式来处理字符串,或者从中过滤出我们想要的内容。 定义好规则以后,它会去字符串中查找符合规则的字符。 正则表达式和语言无关,几乎所有编程语言都会用到。但re模块是Python独有的 下面来介绍匹配规则的写法,规则书写借鉴至:博客园一位优秀博主 下面来使用re模块配合上面的规则来匹配字符 正则匹配规则 字符匹配规则 import re res=re.findall('el','hello 123_*&am

Simple子夜 1365
上一篇: 比较详细Python正则表达式操作指南(re使用)[10]
下一篇: 比较详细Python正则表达式操作指南(re使用)[12]
CsharpGame
博客等级 码龄21年 11粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值