python中re模块_python之re模块

python 中使用正则表达式需要引入re模块,用来匹配处理字符串

如:

import re #第一步,要引入re模块

a = re.findall("匹配规则", "要匹配的字符串") #第二步,调用模块函数

以列表形式返回匹配到的字符串

1、普通字符和11个元字符:

普通字符匹配自身abcabc.匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符a.cabc

\转义字符,使后一个字符改变原来的意思a\.c;a\\ca.c;a\c

*匹配前一个字符0或多次abc*ab;abccc

+匹配前一个字符1次或无限次abc+abc;abccc

?匹配一个字符0次或1次abc?ab;abc

^匹配字符串开头。在多行模式中匹配每一行的开头^abcabc

$匹配字符串末尾,在多行模式中匹配每一行的末尾abc$abc

|或。匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式abc|defabc

def

{}{m}匹配前一个字符m次,{m,n}匹配前一个字符m至n次,若省略n,则匹配m至无限次ab{1,2}cabc

abbc

[]字符集。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。[^abc]表示取反,即非abc。所有特殊字符在字符集中都失去其原有的特殊含义。用\反斜杠转义恢复特殊字符的特殊含义。a[bcd]eabe

ace

ade

()被括起来的表达式将作为分组,从表达式左边开始没遇到一个分组的左括号“(”,编号+1.分组表达式作为一个整体,可以后接数量词。表达式中的|仅在该组中有效。(abc){2}a(123|456)cabcabc

a456c

2、预定义字符集(可以写在字符集[...]中)

\d数字:[0-9]a\bca1c\D非数字:[^\d]a\Dcabc

\s匹配任何空白字符:[<空格>\t\r\n\f\v]a\sca c

\S非空白字符:[^\s]a\Scabc

\w匹配包括下划线在内的任何字字符:[A-Za-z0-9_]a\wcabc

\W匹配非字母字符,即匹配特殊字符a\Wca c

\A仅匹配字符串开头,同^\Aabcabc

\Z仅匹配字符串结尾,同$abc\Zabc

\b匹配\w和\W之间,即匹配单词边界匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。\babc\ba\b!bc空格abc空格a!bc

\B[^\b]a\Bbcabc

模块函数:

1、compile()

编译正则表达式字符串,返回一个对象。该对象可以直接以  .  的方式访问模块函数

格式:

re.compile(pattern,flags=0)

pattern: 编译时用的表达式字符串。

flags 编译标志位,用于修改正则表达式的匹配方式,如:是否区分大小写,多行匹配等。

2、match()

从字符串头部开始匹配。//注:这个方法并不是完全匹配。当pattern结束时若string还有剩余字符,仍然视为成功。想要完全匹配,可以在表达式末尾加上边界匹配符'$'

格式:

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

3、search()

格式:

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

re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

4、findall()

re.findall遍历匹配,获取字符串中所有匹配的子串,返回一个列表。

格式:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些与 IE 相伴的日子

来源&#xff1a;零一作者&#xff1a;前端印象大家好&#xff0c;IE 大家都不陌生&#xff0c;毕竟出现在大家的视野中已经很久很久&#xff0c;久到有20多年&#xff0c;当然也因前端技术的快速更新&#xff0c;给需要兼容IE浏览器的前端程序员带来了不少的困扰。慢慢地&…

html代码style图片width,HTML Style columnWidth用法及代码示例

DOM中的columnWidth属性用于指定列的宽度。用法:返回columnWidth属性&#xff1a;object.style.columnWidth设置columnWidth属性&#xff1a;object.style.columnWidth "auto | length | initial | inherit"属性值&#xff1a;auto:缺省值。列宽将由浏览器确定lengt…

KubeVela 1.0 :开启可编程式应用平台的未来

简介&#xff1a; 如果你对云原生领域不太关注&#xff0c;可能对 KubeVela 还没有做过太深入的了解。别着急&#xff0c;本文就借着 v1.0 发布之际&#xff0c;为你详细的梳理一次 KubeVela 项目的发展脉络&#xff0c;解读它的核心思想和愿景&#xff0c;领悟这个正冉冉升起的…

android-x86 镜像iso下载_2019年微软MSDN原版镜像系统下载地址 Win10/7原版系统iso镜像文件...

如今&#xff0c;不少用户开始讨厌以GHOST形式来安装操作系统&#xff0c;虽然步骤十分简单&#xff0c;但是从网上下载的GHOST系统&#xff0c;已经形成了一个黑色产业链&#xff0c;为了盈利&#xff0c;捆绑了软件全家桶、恶意强制主页&#xff0c;甚至捆绑木马&#xff0c;…

大流量场景下如何云淡风轻地进行线上发布?

简介&#xff1a; 本文介绍了微服务治理下金丝雀发布的能力&#xff0c;解决了发布期间少量流量验证新功能的问题。 前言 本文&#xff0c;我们继续聊聊《揭秘大流量场景下发布如丝般顺滑背后的原因》中的另外一环&#xff0c;灰度发布&#xff0c;也叫金丝雀发布。 ​ 很多互…

匿名提问:rm -rf了怎么办?

整理 | 易璜珵出品 | 《新程序员》IT界流传着一个神秘的代码&#xff0c;老程序员听了总是意味深长地一笑&#xff0c;而新手程序员则总是手痒地想试试&#xff0c;那就是删库指令rm -rf。这一行代码下去&#xff0c;海量数据可能就荡然无存。近几年发生的“删库跑路”事件让这…

计算机网络西北大学,西北大学计算机网络复习资料(拟)

计科专业,计算机网络考前复习时总结的资料,错误很少计算机网络复习一、 计算机网络概论 ....................................................................... 3(一) (二) (三) (四) (五) (六) (七)计算机的形成与发展 ................................................…

ubuntu matlab_有没有人和我一起整理Python的matlab代替

想找人一起整理Python中matlab代替的包&#xff0c;最好是能够将常用功能用tkinter封装起来&#xff0c;积少成多&#xff0c;逐步逼近完整。比如将scipy中的最小二乘法拟合功能&#xff0c;找个图形界面封装一下&#xff0c;就变成了曲线拟合工具&#xff0c;可以代替matlab的…

逸仙电商Seata企业级落地实践

简介&#xff1a; 本文将会以逸仙电商的业务作为背景&#xff0c; 先介绍一下seata的原理&#xff0c; 并给大家进行线上演示&#xff0c; 由浅入深去介绍这款中间件&#xff0c; 以便读者更加容易去理解 Seata 这个中间件。 作者 | 张嘉伟&#xff08;GitHub ID&#xff1a;l…

“类云”的存储服务什么样?Pure Storage发布Pure Fusion等系列新品

一键部署自动化存储平台与云原生数据库即服务&#xff0c;无缝连接基础设施运营与应用程序。 编辑 | 宋慧 出品 | CSDN 云计算 近日&#xff0c;专为多云环境提供存储即服务的Pure Storage发布一系列现代化基础设施、运营及应用程序&#xff0c;这是Pure Storage迈向创新现代…

mac mongodb可视化工具_MongoDB从立地到成佛(介绍、安装、增删改查)

文章作者公众号bigsai&#xff0c;已收录在回车课堂,如有帮助还请不吝啬点个赞赞支持一下&#xff01;课程导学大家好我是bigsai&#xff0c;我们都学过数据库&#xff0c;但你可能更熟悉关系(型)数据库例如MySQL&#xff0c;SQL SERVER&#xff0c;ORACLE等&#xff0c;对于非…

阿里巴巴云原生 etcd 服务集群管控优化实践

简介&#xff1a; 这些年&#xff0c;阿里云原生 etcd 服务发生了翻天覆地的变化&#xff0c;这篇文章主要分享一下 etcd 服务在面对业务量大规模增长下遇到的问题以及我们是如何解决的&#xff0c;希望对读者了解 etcd 的使用和管控运维提供经验分享。 作者 | 陈星宇&#xff…

计算机组装与维护思考问题,计算机组装与维护中的常见问题及解决方法

郜庆国摘要&#xff1a;在如今的社会下&#xff0c;各个领域的很多行业在工作的时候都需要用到计算机来帮助工作的进行&#xff0c;因为计算机在很多情况下都能够很好地进行计算与帮助&#xff0c;所以我们在进行工作时&#xff0c;不仅提高了工作的效率&#xff0c;还解决了很…

淘票票首次公开小程序开发秘籍,踩过坑才知道怎么走!

简介&#xff1a; 在2019年&#xff0c;阿里巴巴文娱的淘票票几乎涉足了当时市面上所有的小程序。在不少平台上&#xff0c;淘票票是阿里“第一批吃螃蟹”的技术团队。回顾过往&#xff0c;阿里文娱做过很多尝试&#xff0c;也踩过很多坑。《小程序 大世界》总结了淘票票过去 2…

stm32f407 6个串口dma_stm32之DMA

一. 对于大容量的STM32芯片有2个DMA控制器&#xff0c;控制器1有7个通道&#xff0c;控制器2有5个通道每个通道都可以配置一些外设的地址。二. 通道的配置过程&#xff1a;1. 首先设置CPARx寄存器和CMARx寄存器。通过DMA控制器把一个地址的值复制到另外一个地址&#xff0c;通过…

立足当下,塑造未来

今天&#xff0c;以“5G与世界同行”为主题的2021全球移动宽带论坛&#xff08;Global MBB Forum&#xff09;在迪拜举行。期间&#xff0c;华为轮值董事长胡厚崑发表了题为“立足当下&#xff0c;塑造未来”的主题演讲。胡厚崑指出&#xff1a;“5G预商用五年以来&#xff0c;…

jfinal html5,Jfinal框架整合webSocket技术功能实现

技术难度&#xff1a;简单在这里我会用最简单的方法实现JFinal框架结合webSocket最基础的功能&#xff0c;以至于后续业务的拓展需要小伙伴们依据实际情况去实现相应的开发&#xff01;废话不多说&#xff0c;直接上代码&#xff01;1、编写webSocket类package morality.ws;imp…

行业实战 | 5G+边缘计算+“自由视角” 让体育赛事更畅快

简介&#xff1a; 世界本是多维的。进入5G时代&#xff0c;观众对多维度视觉体验的需求日益增长&#xff0c;5G MEC网络与边缘计算的结合&#xff0c;具备大带宽、低延迟特性&#xff0c;使视频多维视觉呈现成为现实。在第二十三届CUBA中国大学生篮球联赛期间&#xff0c;中国电…

华为汪涛:走向智能世界2030,无线网络未来十年十大产业趋势

2021全球移动宽带论坛&#xff08;Global MBB Forum&#xff09;期间&#xff0c;华为常务董事、ICT基础设施业务管理委员会主任汪涛发表了题为“走向智能世界2030&#xff0c;无线网络未来十年十大趋势”的主题演讲。汪涛表示&#xff1a;“未来十年&#xff0c;是走向智能世界…

python怎么输入一个数字并调用_Python3 实例(一)

原标题&#xff1a;Python3 实例&#xff08;一&#xff09; Python Hello World 实例 以下实例为学习Python的第一个实例&#xff0c;即如何输出"Hello World!"&#xff1a; 实例 # -*- coding: UTF-8 -*- # Filename : helloworld.py # author by : www.runoob.com…