正则表达式之Python篇

Python正则表达式详解 1. 正则表达式简介on简单翻译为”有规则的表达式“,即该表达式是一条规则,正则表达式引擎能够根据这条规则,在字符串中寻找所有符合规则的部分-》正则表达式是一个特殊的字符序列,方便检查一个字符串是否与某种模式匹配-》Python 自1.5版本起增加了re 模块(标准库),Python通过re模块提供对正则表达式的支持。 阅读详情

正则不属于任何语言,大多数语言都提供正则的支持 正则是一种模式的描述,有其特定的描述符

re 模块使 Python 语言拥有全部的正则表达式功能。 compile
函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re
模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

re.match(pattern, string, flags=0)

#pattern    匹配的正则表达式
#string     要匹配的字符串。
#flags      标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
例:
myre = re.match(r'www', 'www.baidu.com', re.I)
myre1 = re.match(r'com', 'www.baidu.com', re.I)
#myre得到一个<_sre.SRE_Match object; span=(0, 3), match='www'>
#而myre1则返回None

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

group(num=0)    匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups()    返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

re.search(pattern, string, flags=0)

pattern 匹配的正则表达式
string  要匹配的字符串。
flags   标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

匹配成功re.search方法返回一个匹配的对象,否则返回None。

1.了解正则的描述符

re.I    是匹配对大小写不敏感
re.M    多行匹配影响^和$

re.L    做本地化识别(locale-aware)匹配
re.S    使 . 匹配包括换行在内的所有字符
re.U    根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X    该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
re      是Python中正则模块

正则表达式模式

模式字符串使用特殊的语法来表示一个正则表达式:
字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
多数字母和数字前加一个反斜杠时会拥有不同的含义。
标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
反斜杠本身需要使用反斜杠转义。
由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'/t',等价于'//t')匹配相应的特殊字符。
下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。
模式  描述
^   匹配字符串的开头
$  匹配字符串的末尾。
.   匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[...]   用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
[^...]  不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re* 匹配0个或多个的表达式。
re+ 匹配1个或多个的表达式。
re? 匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n}  
re{ n,} 精确匹配n个前面表达式。
re{ n, m}   匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b    匹配a或b
(re)    G匹配括号内的表达式,也表示一个组
(?imx)  正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。
(?-imx) 正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。
(?: re) 类似 (...), 但是不表示一个组
(?imx: re)  在括号中使用i, m, 或 x 可选标志
(?-imx: re) 在括号中不使用i, m, 或 x 可选标志
(?#...) 注释.
(?= re) 前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。
(?! re) 前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功
(?> re) 匹配的独立模式,省去回溯。
\w  匹配字母数字
\W  匹配非字母数字
\s  匹配任意空白字符,等价于 [\t\n\r\f].
\S  匹配任意非空字符
\d  匹配任意数字,等价于 [0-9].
\D  匹配任意非数字
\A  匹配字符串开始
\Z  匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c
\z  匹配字符串结束
\G  匹配最后匹配完成的位置。
\b  匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B  匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\n, \t, 等.  匹配一个换行符。匹配一个制表符。等
\1...\9 匹配第n个分组的内容。
\10 匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。

检索和替换

Python 的re模块提供了re.sub用于替换字符串中的匹配项

re.sub(pattern, repl, string, count=0)

pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
python之正则表达式(复杂篇) 前言 继上篇文章说了正则表达式的基础用法,那今天我们就继续说一下正则表达式的复杂的用法。好了,废话不多说,直接进入正题。 正文 情景:当你想要匹配一个qq号,qq号码长度为5-10位,那根据上篇文章的说法,很容易就可以想到该正则: [0-9]{5,10} 这样是可以的,但是当你匹配一个长度大于10的号码时就会出错,这时就会去该字符串的前10个数字出来,如下: import ... 阅读详情

相关推荐

【Python3教程】Python3高级篇之正则表达式

Python正则表达式简明指南 正则表达式是Python处理文本的强大工具,通过re模块实现。本文介绍了正则表达式的基本概念、常用函数和语法规则。 主要功能: 匹配(match/search) 查找(findall/finditer) 替换(sub) 分割(split) 核心元字符包括: 基本符号:. ^ $ * + ? {} 字符集:[ ] [^ ] 特殊字符:\d \w \s及其大写反义形式 分组与或:( ) | 常用re模块函数: match():开头匹配 search():全局搜索 findall(

No8g攻城狮的博客 583

Python正则表达式详解(含丰富案例)

正则表达式在网络爬虫、数据分析中有着广泛使用,掌握正则表达式能够达到事半功倍的效果。本文详细介绍正则表达式中各种规则及其符号含义,并结合Python中的Re库进行演示,由浅入深,即学即练即用,内容丰富,非常适合初学者。正则表达式(regular expression)就是用一组由字母和符号组成的“表达式”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“xy+” 描述的特征是“一个 ‘x’ 和 至少一个 ‘y’ ”,那么‘xy’,‘xyy’, ‘xyyyyyyy’都符合这个特征。

Python栈 1万+

FPGA以太网通信实战(一):实现MDIO接口驱动,掌控PHY芯片的钥匙

本文介绍了以太网通信技术及其核心组件。首先概述了以太网的发展历程,从标准以太网(10Mbps)到万兆以太网(10Gbps)的技术演进。重点分析了以太网接口的两大核心部件:MAC控制器负责数据链路层协议处理,PHY芯片负责物理信号转换和连接管理。文章详细解读了MDIO接口规范,包括帧格式和读写时序,并以YT8531 PHY芯片为例,介绍了其寄存器配置方法。最后设计了一个FPGA实现方案,通过MDIO接口完成PHY芯片的软复位和状态监测功能,并利用LED指示灯实时显示网络连接速率。

weixin_64402689的博客 1662

一文彻底解读Python正则表达式,小白也能学得会 !!

Python所有方向的学习路线图,清楚各个方向要学什么东西600多节Python课程视频,涵盖必备基础、爬虫和数据分析100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论爬虫与反爬虫攻防教程包,含15个大型网站迫解超300本Python电子好书,从入门到高阶应有尽有华为出品独家Python漫画教程,手机也能学习历年互联网企业Python面试真题,复习时非常方便。

python03012的博客 3922

Altera Cyclone4 EP4CE15F17C8核心板硬件设计避坑指南(附AD09工程文件)

本文深入解析Altera Cyclone4 EP4CE15F17C8核心板硬件设计中的关键问题与解决方案,涵盖电源架构优化、信号完整性处理、热设计及生产调试要点。特别提供经过验证的AD09工程文件,帮助开发者规避常见设计陷阱,提升FPGA项目的成功率与可靠性。

weixin_29159441的博客 297

自动化学报Ctex+texstudio配置方法

自动化学报Latex的模板win10使用方法(CTEX+texstudio)

zxy15924462502的博客 7375

Python 正则表达式大全,值得收藏

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

z099164的博客 1万+

【STM32Cube HAL】输入捕获(六)——PWM测量

实验内容:使用通用定时器输入捕获测量信号的脉宽(检测按键按下的时间)。 一、原理图 二、 CubeMX配置 Step1.打开 STM32CubeMX,点击“New Project”,选择芯片型号,STM32F103VETx。 Step2.选择时钟源,并配置时钟树。选择Crystal/Ceramic Resonator,并配置系统时钟为72M。 Step3.配置SYS,我们这里选择的是Serial Wire。(正常情况配置不配置不影响,debug可以使用。但是你不可以把这...

HAHAHA 1万+

Python正则表达式(完整版)

转载:https://www.jianshu.com/p/5295c5988b7f 一、正则表达式语法 (一) 字符与字符类 1、特殊字符:\.^$?+*{}[]()| 以上特殊字符要想使用字面值,必须使用\进行转义。 2、字符类 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。 字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A...

qq_30534935的博客 4189

Detector-Free SfM 项目复现完整指南:从环境搭建到代码解析与可视化

本文提供了Detector-Free SfM项目的完整复现指南,涵盖技术背景、环境配置、代码解析和可视化方案。重点包括: 技术背景:Detector-Free SfM通过两阶段策略(粗重建+迭代精化)解决了传统SfM在弱纹理区域的瓶颈问题,采用深度学习匹配器替代传统特征点检测。 环境配置: 详细硬件要求与推荐配置(GPU/CPU/内存) 完整的Ubuntu系统设置步骤 Conda环境创建与依赖安装流程 关键组件安装指南(PyTorch、COLMAP等) 常见错误解决方案 项目特点: 支持多种Detector

huanghm88的专栏 121

图文:银行核心账务处理逻辑(白话篇)

银行账务系统分为对内账(记录银行自身资产负债)和对外账(处理客户交易),通过特定编码规则的账号体系进行管理。采用T型账户结构和凭证制度确保每笔交易可追溯,通过明细核算与综合核算双线并行、每日轧账核对(科目日结单、总账、日计表)实现账务精准平衡。从业务触发到最终账平的全流程体现了银行账务"分层记录、双向核对、闭环校验"的核心原则,保障资金流动的透明性与安全性。

银行信息系统应用架构详解 541

python正则表达式快速入门_Python 正则表达式入门(初级篇)

Python 正则表达式入门(初级篇)本文主要为没有使用正则表达式经验的新手入门所写。转载请写明出处引子首先说 正则表达式是什么?正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本...

weixin_39621075的博客 264

踩坑2周总结:Python+YOLO26搭建工业级多路视频分析应用,从单路卡顿到16路4K稳跑30FPS

本文分享了工业级多路视频分析系统的实战经验,针对智慧物流园区的车辆违停和人员安全监测需求,提出了一套完整的解决方案。作者通过踩坑实践,总结出多路视频分析的四大核心痛点:视频流解码瓶颈、推理调度混乱、内存占用爆炸和部署兼容性差。 文章详细介绍了技术选型方案,推荐使用FFmpeg+PyAV进行硬件加速解码、YOLO26+TensorRT INT8量化推理、单进程多线程的生产者-消费者架构,以及内存池复用等技术组合。该方案在RTX 4070 Ti上实现了16路4K视频30FPS稳定运行,GPU利用率达85%以上,

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 955

[ Python] Python的正则表达式篇

正则表达式(regular expression)是用于匹配字符串的一种强大工具。Python 提供了 re 模块来处理正则表达式。通过正则表达式,可以快速匹配、查找、替换、分割字符串等。

suzimuyu99的博客 858

YOLOv11损失函数原理与源码解读:从调参血泪史到源码级优化

本文深入解析YOLOv11目标检测模型的损失函数设计,揭示其相比前代的关键改进。重点剖析了回归损失中动态权重的小目标优化、分类损失的带温度系数softmax、以及目标损失的自适应阈值机制等创新点。作者通过源码分析指出常见实现陷阱,如梯度回传的正确处理方式、标签分配的匹配策略等。结合实战经验,给出针对小目标检测、类别误判等典型问题的调参建议,并分享实用的调试工具代码片段。最后强调损失函数调参需结合具体任务,指出后处理对实际部署效果的重要影响。全文以工程实践为导向,为开发者提供可直接落地的优化思路。

as1225120794的博客 441

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python 正则表达式篇

本文将讲解python 正则表达式的使用该方法,包含普通字符、特殊字符、re模块的使用等等.....

a883774913的博客 566

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Python正则表达式终结篇

1. 正则表达式语法 1.1 字符与字符类 1 特殊字符:.^$?+*{}| 以上特殊字符要想使用字面值,必须使用进行转义 2 字符类 1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。 2. 字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之间的任何一个字符 3. 左方括号后跟随一个,表示否定一个字符类,比如[0-9]...

web开发与Python 459

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

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

初始Python篇——正则表达式

正则表达式是一个强大而灵活的工具,可以帮助我们高效地处理各种字符串匹配和替换任务。Python的re模块使得正则表达式在Python中得到了广泛应用,掌握正则表达式的基本语法和常用功能,将极大提升你处理文本的能力。如果你还对正则表达式有疑问或想深入了解,可以参考官方文档或进一步的学习资源。掌握它,你将成为一个更高效的程序员。

小蜗牛的珍贵百宝箱 1263

Python 进阶 — 正则表达式篇

文章目录正则表达式语法 —— Python特殊字符定位符重复修饰符(限定符)扩展标记法`\`+普通字符re 模块函数匹配一项match() 函数search() 函数fullmatch() 函数匹配多项finall()finditer()split() 正则分割替换excape() 转义函数purge() 清除正则表达式缓存RegexFlag 标志常量正则对象 Pattern正则对象方法正则对象属性匹配对象匹配对象方法 正则表达式语法 —— Python 正则表达式是一个特殊的字符序列,能方便地检查一个字

qq_22182345的博客 731

python 正则表达式 ,看这篇就够了

python 正则表达式学习python正则表达式学习创建正则表达式对象括号分组管道方法匹配多个分组选择匹配多次匹配findall方法通配符 python正则表达式学习 很久没有用python写正则,有些荒废,很多都忘记了,这段时间正好看了python编程书籍,算是小菜鸡的温故知新,正则表达式有很多实际的用处,然而有时候却很复杂,在用python写爬虫的时候很有用,用的好可以事半功倍,简单的回顾一下python正则表达式的一些简单用法。 创建正则表达式对象 Python 中所有正则表达式的函数都在 re 模

sinat_41053216的博客 523

Python之正则表达式-基础篇

由于正则表达式中* . \ { } ( )等都具有特殊的含义,所以如果想要在正则中匹配这种指定的字符,需要转义。2、match,从起始位置开始匹配,匹配成功返回一个对象,未见配成功返回None。3、search,浏览整个字符串去匹配第一个,未匹配成功返回None。{m,n}表示之前的字符出现次数大于m次,小于n次。.* 表示匹配任意单个字符后面可以是0/多个字符。.+表示匹配任意单个字符后面可以是1/多个字符。{n,}表示之前的字符至少出现n次。4、sub,替换匹配成功的位置。

zlwjyy123456的博客 1569

Python编程爬虫篇之正则表达式

Python编程爬虫篇之正则表达式 文章目录Python编程爬虫篇之正则表达式正则表达式简介基本概念正则表达式应用场景Python对正则表达式的支持普通字符元字符预定义匹配字符集重复匹配位置匹配非贪婪匹配正则表达式常用方法分组功能二、使用步骤1.引入库2.读入数据总结 正则表达式简介 基本概念 正则表达式应用场景 Python对正则表达式的支持 普通字符 元字符 预定义匹配字符集 重复匹配 位置匹配 非贪婪匹配 正则表达式常用方法 分组功能 二、使用步骤 1.引入库 代码如下(示例): import num

weixin_49069669的博客 620

Python 正则表达式入门(中级篇)

转载自:http://www.cnblogs.com/chuxiuhong/p/5907484.html 1.子表达式 子表达式的概念特别好理解。其实它就是将几个字符的组合形式看做一个大的“字符”。不好理解?举个栗子:我们要匹配类似IP地址这种形式的字符(暂且不考虑数值范围的合理性,这个留作学完之后的思考题吧)。形如192.168.1.1这样的地址我们怎么写表达式呢? 答案一 \d+.?\...

Tomes.V.White 174

初始Python篇(7)—— 正则表达式

正则表达式的概念、组成、使用

我要学编程的博客 8055

Python基础篇:认知正则表达式

在编写处理字符串的程时,经常会遇到在一段文本中查找符合某些规则的字符串的需求,正则表达式就是用于描述这些规则的工具

五包辣条的博客 861

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

正则表达式 re

那么菜的博客 1194
上一篇: SAX解析XML
下一篇: Hadoop之HDFS存储及读取机制
C_FuL
博客等级 码龄10年 15粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值