首页 > 其他分享 >正则表达式re模块

正则表达式re模块

时间:2024-11-12 16:42:36浏览次数:1  
标签:字符 匹配 正则表达式 re 模块 print group findall

import re

# 正则表达式中的元字符:

# “.” 点通配符表示可以替换表达式中的任意字符,只能代指一个字符,除换行符外
print(re.findall("a..", "hdhgaqwe"))

# “^”只从开始匹配
print(re.findall("^a..", "ahdhgaqwe"))

# “$” 只从结尾匹配
print(re.findall("a..$", "ahdhgawe"))

# “*” 重复匹配【0-无穷】
print(re.findall("a*bc", "ahdhgaabcqwbce"))

# “+” 重复匹配【1-无穷】
print(re.findall("a+bc", "ahdhgaabcqwbce"))

# “?”匹配0个或一个字符
print(re.findall("a?b", "ahdhgaabcqwbce"))

# “{}” 表示重复多少次字符
print(re.findall("a{2}b", "ahdhgaabcqwbce"))
print(re.findall("a{1,3}b", "ahdhgaaabcqwbce"))

# “[]” 字符集,表示满足字符集中任意一个字符都可以,不可以满足多个字符,还可以取消元字符的特殊意义但这些不取消(| ^ -),^放在字符集中是取反的意思
print(re.findall("[a-z,0-9]b", "ahdhgaabcqw12ebc1be"))

# “\” 反斜杠后边跟元字符去除特殊功能,反斜杠后边跟普通字符实现特殊功能
# '\A'    只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
# '\Z'    匹配字符结尾,同$
# '\d'    匹配数字0-9
# '\D'    匹配非数字
# '\w'    匹配[A-Za-z0-9]
# '\W'    匹配非[A-Za-z0-9]
# 's'     匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
print(re.findall("b\*", "ahdhgaab*cqwbce"))
print(re.findall("b\d", "ahdhgaab*cqwb12ce"))


# “()” 分组,匹配一组数据,把括号里面的内容当一组使用
print(re.search("(ab)+", "ahdhgababcqwabbce").group())

# “|”管道符,或的意思,匹配前一组或后一组
print(re.search("Ab| ab", "Abahdhgabcqwbbce").group())

# ?P<name> 名称的固定格式,可以根据名称取具体值
ret = re.search("(?P<name>[a-z]{3})(?P<age>[0-9]{2})", "1a2aabc123")
print(ret.group())
print(ret.group("name"))
print(ret.group("age"))


# 正则表达式中常用的方法
# findall 全匹配,只要字符串中匹配出来的都在列表中展示
print(re.findall("a..b", "ashbshhaccbd"))

# search匹配出一个后保存到对象中,可以通过group调用获取具体值
print(re.search("a..b", "ashbshhaccbd").group())

# match中从开始位置匹配字符串,也保存为对象,可以通过group调用获取具体值
print(re.match("a..b", "ashbshhaccbd").group())

# split以匹配到的字符进行分组
print(re.split("[h,c]", "ashbshaccbd"))

# sub把匹配到的字符进行替换
print(re.sub("h.", "vvvv", "ashbshaccbd"))

# compile把正则条件编译成对象,后续可以直接调用
mat = re.compile("a..")
print(mat.findall("ashbshaccbd"))

 

标签:字符,匹配,正则表达式,re,模块,print,group,findall
From: https://www.cnblogs.com/GDquicksand/p/18542217

相关文章

  • 图片批量处理工具 Light Image Resizer v7.0.9 注册码
    想要轻松压缩图片,提升工作效率?LightImageResizer中文便携正式版是您的理想选择。这款图片无损压缩工具让您能够快速调整图片大小,批量转换图像格式,一站式处理图片需求。该版本已内置注册码,可以使用全部功能。软件截图:使用说明:1、将压缩文件解压到固定位置,不要随意移动。......
  • springboot2+mybatis+shardingsphere-5.5.1
    注意:1.druid不能boot-starter方式引入2.snakeyaml需要1.33('voidorg.yaml.snakeyaml.LoaderOptions.setCodePointLimit(int)') #303183.spring.datasource.driverClassName:org.apache.shardingsphere.driver.ShardingSphereDriver4.如果使用了quartz,需要指定独立数据源(Tabl......
  • 4G模组软件指南 | 必读篇之模块信息(hmeta)
    今天我讲解的这篇关于4G模组软件的模块信息属于必读篇,望珍惜!1、模块信息概述模块信息是每一个模块携带的信息,就像人的身份证一样,这些信息确定了模块的唯一性;包含设备唯一id,硬件型号,模组的硬件版本号,固件版本号等;模块远程升级需要上传模块信息,解决和分析某些问题的时候......
  • python中copy模块的使用,深拷贝和浅拷贝
    文章目录一、copy模块的介绍1、copy模块二、copy模块的使用拓展说明:1、id()函数的使用2、is和==的区别python的轮子太多啦,下面介绍一下这个小模块的使用一、copy模块的介绍1、copy模块copy模块用于对象的拷贝操作。copy模块非常简单,只有两个api。分别是copy.......
  • threejs实现模型切换为动态漩涡
    效果预览202411120010粒子形状初始化形状由y=ln(x)绕y轴旋转而来1、确认最大圆环数n因为最小的圆环和最大的圆环相差很多倍不适合统一一样的点数组成,而是每下一个圆环比上一个圆环多一个点,这样可以让点的分布不那么极端。这样圆环会形成一个等比数列,我规定第一个最小圆......
  • 反向代理模块开发
     1概念1.1反向代理概念反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。对于客户端来说,反向代理就相当于目标服务器,只需要将反向代理当作目标服务器一......
  • Docker使用docker-compose一键部署nacos、Mysql、redis
    下面是一个简单的例子,展示如何通过DockerCompose文件部署Nacos、MySQL和Redis。请确保您的机器上已经安装了Docker和DockerCompose。1,准备好mysql、redis、nacos镜像sudodockerpullmysql:8&&sudodockerpullredis:7.2&&sudodockerpullnacos/nacos-server:v2.4.......
  • Linux 6.13 将提供对一系列 Pre-M1 苹果设备的基本支持
    虽然不像苹果M3/M4设备支持上游主线Linux内核那样令人兴奋,但对于那些拥有一些较旧的苹果(M1之前)设备的用户来说,即将发布的Linux6.13内核将支持一些较旧的SoC和板卡。即将到来的Linux6.13合并窗口将支持大量旧版AppleSoC和板卡,但这只是最基本/初始形式的支持......
  • 【VMware by Broadcom】新闻:VMware Workstation 和 Fusion 产品商业使用免费。
    VMwareWorkstationPro和VMwareFusionPro是VMwareDesktopHypervisor产品,允许用户在Windows、Linux或Mac计算机上运行虚拟机、容器和Kubernetes集群。我相信绝大部分人使用VMware的产品都是从这里开始的,我也不例外。前段时间,VMware宣布将这两款产品永久免费提供......
  • 代码整洁之道:在 React 项目中使用 ESLint 的最佳实践
    前言在现代前端开发过程中,保持代码的质量和一致性至关重要。作为一个强大的静态代码分析工具,ESLint能够帮助开发者发现和修复代码中的问题,从而确保代码的可维护性和稳定性。在本文中,我们将探讨在React项目中使用ESLint的最佳实践,涵盖安装、配置、自定义规则以及与其......