Python文本处理—初识正则表达式模块(re模块)

Python文本处理(-)正则表达式操作-re模块 & regex模块 正则表达式(称为RE,或正则,或正则表达式模式)本质上是嵌入在Python中的一种微小的、高度专业化的编程语言。re模块提供来正则表达式匹配操作,用来对文本进行一些处理优化。匹配模式和被搜索的字符串既可以是Unicode字符串(str),也可以是8位字节串(bytes),不过两者不能混用。绝大多数正则表达式操作都提供了相应的函数,函数不需要先编译一个对象,但损失来一些优化参数。另外,第三方模块regex提供来与Python内置标准库re模块兼容的API接口,同时提供来额外的功能和更全面的Unicode支持。 阅读详情

0. 问题

1.问:如何去除英文文本中的字符、空格、数字等与文本无关的字?

如下面的字符串text,该如何处理?

text = '   Today  II[} I ??( 123 $%%L) _+O+V+20!!2[E...4Y23OU ]UU#@U  '

解决:

re.sub(r'[\W0-9_]', '', text)

在这里插入图片描述
2.如何去在上面要求的基础上,还保留单词之间的空格?

借此梳理总结一下python的正则表达式操作

1.概览

  • 什么是正则表达式?
    ——规则表达式

    正则表达式 = Regular Expression = regex = regexp = RE

    正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

    正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式。 就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

  • 正则表达式用来做什么?
    ——模糊匹配(过滤字符串)

    在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
    许多程序设计语言都支持利用正则表达式进行字符串操作。

  • 正则表达式怎么用?
    ——操纵字符串+特殊符号

2.正则表达式语法

正则表达式包括字符串(包括普通字符)和特殊字符。

  • 字符串

    绝大部分普通字符,比如 ‘A’, ‘a’, 或者 ‘0’,都是最简单的正则表达式。它们就匹配自身。

  • 特殊字符

    有些字符,比如 ‘|’ 或者 ‘(’,属于特殊字符。 特殊字符既可以表示它的普通含义, 也可以影响它旁边的正则表达式的解释。

特殊字符如下:
在这里插入图片描述几个值得注意的点:

① [ ] 表示一个字符集!
比如,想要表示0-9的数字就不需要像0-9这样表达,而是[0-9],类似的还有[A-Z].

print(re.search(r'b[a-z]d', 'I want to be a bird.') ) # 类似 bid 、ba之类的单词(没有找到)

print(re.search(r'b[a-z][a-z]d', 'I want to be a bird.') ) # 类似 bid 、ba之类的单词(找到:bird)

② 原始字符串( r’raw’ ):
用r当前缀,引号括起来的字符串,在它们之中的反斜杠不必做任何特殊处理

反斜杠(’ \ ')
反斜杠表示特殊形式,或者把特殊字符转义成普通字符。
包含’ \ ’的特殊序列的意义:
在这里插入图片描述几个常用的:

  • \s

    对于 Unicode (str) 样式:
    匹配任何Unicode空白字符(包括 [ \t\n\r\f\v] ,还有很多其他字符。
    注:\t:Tab、\n :Next

  • \S

    匹配任何非空白字符。就是 \s 取非。如果设置了 ASCII 标志,就相当于 [^ \t\n\r\f\v]

  • \w

    对于 Unicode (str) 样式:
    匹配Unicode词语的字符,包含了可以构成词语的绝大部分字符,也包括数字和下划线。如果设置了 ASCII 标志,就只匹配 [a-zA-Z0-9_]

  • \W

    匹配任何不是单词字符的字符。 这与 \w 正相反。 如果使用了 ASCII 旗标,这就等价于 [^a-zA-Z0-9_]。

  • \d
    匹配任意十进制数,相当于[a-zA-Z0-9]
    (通配符:匹配数字)

  • \D
    匹配任意非十进制数,相当于[^a-zA-Z0-9]
    (通配符:匹配字母)
    跳出技术细节,回过头我们想一想正则表达式到底是在做什么事情。其实,我们完全可以把对一个字符串的操作当做一个完整的数据处理流程,只不过全部的数据就是简单的字符串而已,而正则正则表达式做的事情,就是对数据的一种过滤和筛选——从原始字符串中选出我们需求的那部分数据的表达集合。

3.字符串的方法

3.1 分割字符串

  • split()
    将字符串拆分为一个列表,在正则匹配的任何地方将其拆分
    这里指的是模块方法re.split(),功能比字符串方法split()更为强大一些

3.2 搜索和替换

  • sub()
    找到正则匹配的所有子字符串,并用不同的字符串替换它们
  • subn()
    与 sub() 相同,但返回新字符串和替换次数

注意:在转向 re 模块之前,请考虑是否可以使用更快更简单的字符串方法解决问题。比如,replace()

3.2 应用匹配

match() 和 search()

Python正则表达式(re模块) 阅读详情

相关推荐

Catia二次开发QueryInterface的操蛋问题

探索了很久,尝试录制宏,打开部件属性窗口,然后随意设置一些属性(必须改变一些东西才能录制成功,否则不会录制到任何东西),再看录制的结果,发现原来CATIAAnalyze是从Product那里来的。例如获得一个部件的体积,找到相关接口CATIAAnalyze,但是这个部件的CATIAAnalyze的对象不知道如何获取。总结一下,写Catia二开代码,就像漂亮国那款《莫里秀》 又名《爸爸死哪了》的综艺节目,大部分时间都是在找爸爸!Catia二开很痛苦,明明已经找到接口类,但是却不知道怎么获得这个接口类的对象。

gergul的专栏 746

python——正则表达式re

目录 一、re模块介绍 1. re模块提供的类 2. re模块提供的函数 3. 标志位flags 二、使用re模块的步骤 1. 使用re模块进行正则匹配操作的步骤 2. 使用re模块进行内容查找、替换和字符串分隔操作的步骤 三、re模块简单应用示例 1. 匹配测试 2. 内容查找 3. 内容替换 4. 字符串分割 四、关于匹配对象的说明 五、说说正则表达式字符串前的r前缀 六、re模块综合应用实例 0. 实例背景与准备工作 实例1. 首先匹配玩家手中的牌是否符合游戏规则

zangba9624的博客 2428

用户消费行为分析(MapReduce实现,Hive分析)

一、题目要求 数据来自CDNow网站的一份用户购买CD明细,本数据集共有 6 万条 左右数据,数据为 CDNow 网站 1997年1月至1998年6月的用户行为 数据

紫烟的博客 3013

Python正则表达式re模块详解(新手必备超级详细一)

match(pattern,string,flags=0) 从被匹配字符串开头进行匹配,匹配成功返回匹配对象 (包含匹配的信息),匹配不成功返回空None。正则表达式本身也就是字符串,只是里面的字符都有特别的含义,分为:普通字符串,直接匹配它们,特殊字符(元字符),它们出现在正则表达式字符串中,不是表示直接匹配它们,而是表达一些特别的含义。

weixin_44230400的博客 4966

JPA - @MappedSuperclass - 基类注解

目录前言代码示例 前言 @MappedSuperclass注解一般作为基类的注解,表眀该类是映射的超类,继承于它的子类实体在映射时会自动添加到子类实体的对应数据库表中,用于共同的属性代码复用和模型分离。 代码示例 BaseEntity.java import lombok.Getter; import lombok.Setter; import javax.persistence.MappedSuperclass; import java.util.Date; @Getter @Setter @Ma

Maggieq8324的博客 2065

算法 A 求稳健平均值和稳健标准差

文章目录算法原理代码 算法原理 算法 A 来自 GB/T 6379.5。应用此算法计算得到数据平均值和标准差的稳健值。稳健性是估计算法的特点,而不是其产生的估计值的特点,因此严格来说,称由此算法计算的平均值和标准差是稳健的是不确切的。然而,为避免使用繁琐的术语,“稳健均值”和“稳健标准差”应理解为利用稳健算法计算的总体均值和总体标准差的均值估计。 设数据为 xi,i∈(1,2,⋯ ,n)x_i, i\in(1,2,\cdots,n)xi​,i∈(1,2,⋯,n),记稳健平均值为 x∗,s∗x^*, s^*x

zhuo木鸟的博客 9254

【Python 基础篇】Python正则表达式及 re 库

正则表达式 re

那么菜的博客 1194

【CMU-自主导航与规划】Autonomous Exploration Development Environment 实战:从环境搭建到多场景测试

本文详细介绍了CMU开源自主导航开发环境(Autonomous Exploration Development Environment)的实战部署与测试。内容涵盖从Ubuntu与ROS环境搭建、仿真场景配置,到核心导航模块(地形分析、局部避障、航点跟踪)的深度解析,并演示了如何集成TARE探索与FAR规划等上层算法,最终指导连接真实SLAM与实车部署,完成多场景性能评估。

weixin_29215391的博客 706

Python之re

定义:re模块称为正则表达式;作用:创建一个"规则表达式",用于验证和查找符合规则的文本,广泛用于各种搜索引擎、账户密码的验证等; 特殊字符: 反斜杠问题 字符串中有反斜杠的,需要对反斜杠做转义: 在正则表达式中,我们需要用多个反斜杠来匹配一个反斜杠: 匹配方法 1、match:在目标文本的开头进行匹配 2、search:在整个目标文本中进行匹配3、findall:扫描整个目标文本,返回所有与规则匹配的子串组成的列表,如果没有匹配的返回空列表4、finditer:扫描整个目标文本

zxj19930410jy的博客 1209

《QT+PCL 第一章》:点云读取显示

点云读取显示一、核心代码二、QT设置三、效果展示 一、核心代码 二、QT设置 三、效果展示

阁楼 1万+

第10章: MMU notifier与HMM的协作

本文摘要: HMM(Heterogeneous Memory Management)是Linux内核提供的异构内存管理框架,用于统一CPU与设备(如GPU、DSP等)的内存访问。它通过镜像页表技术实现虚拟地址空间共享,自动同步CPU和设备页表变化,支持透明的内存迁移和设备内存管理。HMM构建在mmu_interval_notifier机制上,利用序列号检测页表修改冲突,提供高效并发控制。核心数据结构包括hmm_range和HMM PFN标志位,通过hmm_range_fault()实现页表遍历和缺页处理。

图形/计算GPU的驱动与虚拟化技术分享园地 3090

使用re模块实现正则表达式操作

在Python提供了re模块,用于实现正则表达式的操作

精益求精,永无止境,永远在路上! 2888

【漏洞复现】爱数云盘 Usrm_GetAllUsers 未授权访问漏洞

爱数 AnyShare存在未授权漏洞,未授权的攻击者可以通过该漏洞获取用户名信息。

qq_67810151的博客 3120

【Python】re模块

正则表达式其本身就是一种小型的,高度专业化的编程语言。在Python中,它被内 嵌在了re模块里面,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹 配引擎执行。

Linux小白一只~正处于学习阶段,觉得我写的还好的请多多给我点赞呀,谢谢大家!!(๑>ڡ<)☆ 4724

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python之正则表达式(re模块)

本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 参考文档 提示:由于该站对MARKDOWN的表格支持的不是很好,所以本文中的表格均以图片的形式提供,大家如果看着比较模糊,可以放大来看或下载图片在本地查看。 正则表达式(Regluar Expressions)又称规则表达式,在代码中常简写为REs,regexes或regexp(regex patterns)。它本质上是一个小巧的、高度专用的编程语.

1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Python模块 —— re正则表达式

正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,对于所有编程语言通用。对于Python来说我们使用re模块来操作正则表达式来匹配我们想要的结果。

julong187的博客 1525

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【python】python进阶——re模块(正则表达式)

正则表达式是文本处理的瑞士军刀,而Python的re模块则是操作这把利器的重要工具包。无论你是需要验证用户输入、从文本中提取数据,还是进行复杂的文本替换操作,re模块都能提供强大而灵活的支持。

weixin_51924657的博客 1921

Python之re模块实现正则表达式

ZONGXP的博客 8160

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

正则表达式就是为了利用特殊符号,快速实现字符串的匹配,或者说是字符串的过滤1、表格12、表格2callable;def purge(): # 净化def template(pattern, flags=0): # 模板""""""else:else:s = []else:if c == 0:else:re的匹配语法有以下几种(pattern, string, flags=0):从头开始匹配re.search(pattern, string, flags=0) : 匹配包含。

2401_88244350的博客 1383

Python中re模块总结

Python中re模块总结 正则表达式作为计算机科学的一个概念,通常被用来检索、替换那些符合某个规则的文本。正则表达式是对字符串操作的一种逻辑公式,用事先定义好的规则字符串对字符串进行过滤逻辑处理。 re模块总结,正则表达式。在网络爬虫中对于数据定位,学习regex也很有必要 文章目录Python中re模块总结常用方法重要标识符常用表达式规则举例说明re.match(pattern, string, flags=0)re.search(pattern, string, flags=0)re.finda

北山啦的博客 4614

正则表达式模块re及其应用

正则表达式是一种强大的文本处理工具,能够用来匹配、查找、替换复杂的文本模式。Python中的正则表达式由re模块提供。

KEEP CODING 1369

python re模块 re 正则表达式操作

python re模块 re 正则表达式操作    本模块提供了类似于Perl的正则表达式匹配操作。要匹配的模式和字符串可以是Unicode字符串以及8位字符串。   正则表达式使用反斜杠字符('\')来表示特殊的形式或者来允许使用特殊的字符而不要启用它们特殊的含义。这与字符串字面值中相同目的的相同字符的用法冲突;例如,要匹配一个反斜线字面值,你必须写成'\\\\'作为模式字符串,因为正则表...

xuq09的专栏 918

python正则表达式re模块

Python的re模块提供了强大的正则表达式功能,是文本处理的利器。高效处理文本:快速完成复杂的文本匹配和替换数据验证:验证用户输入的格式数据提取:从非结构化文本中提取结构化信息文本清洗:预处理文本数据用于分析。

a181001_的博客 882

Python中的文本处理(二)re 模块的常用方法

前言 字符串处理是编程中常用到的操作,本系列总结的目标是通过系统的介绍不同的方法来完成不同复杂度的字符串处理操作。旨在方便大家遇到不同的需求时,可以快速找到合适的处理方式,从而使代码开发快速,简洁,稳定的目的。 本文为系列第二篇,一些复杂字符串处理. 一些复杂的处理功能的时候,str模块无法满足需求,需要引入文本处理的神器正则表达式(如需系统了解正则表达式,可阅读此文)。本文将介绍一下Python 中re模块的常用方法 1. 匹配 re模块的提供了4种方法 1.1 re.m...

be5yond的博客 1850

【Python】re模块:提供了正则表达式功能

Python中的re模块提供了正则表达式功能,允许你对字符串进行模式匹配、查找、替换等操作。正则表达式是一种强大的工具,可以用来匹配、查找、替换符合特定模式的字符串。常用的函数包括:match():从起始位置匹配字符串。search():在整个字符串中搜索匹配项。findall():查找所有匹配项。finditer():返回匹配项的迭代器。sub():替换匹配的子串。split():根据模式分割字符串。compile():编译正则表达式,提高匹配效率。escape()将字符串中的所有特殊字符进行转义。

彬彬侠的博客 1174
上一篇: 疑难杂症之Python——'numpy.ndarray' object has no attribute 'array'
下一篇: 杂谈——这些天关于学习Python数据分析的一些感悟
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值