首页 > 编程语言 >python 使用re模块,配合正则表达式来查找字符串的想要的字符串

python 使用re模块,配合正则表达式来查找字符串的想要的字符串

时间:2023-08-22 16:15:03浏览次数:46  
标签:匹配 re python 正则表达式 result 字符串 Hello

一,首先:我们现了解一下python中正则表达式的基本规则有那些?

1,字符串"\d"匹配0~9之间的一个数值

eg: 'dsas212b321321'

使用 r'\d'

结果:(它会一次匹配一个数字依次查找)2 1 2 3 2 1 3 2 1 

 

2,字符"+"重复前面一个匹配字符一次或者多次

eg: 'dsas212b321321'

方式1:使用 r'\d+'

结果:(它会一次匹配一个数字依次查找)212  321321 

3,字符" * "重复前面一个匹配字符零次或者多次.

eg: 'dsas212b321321'

 

 

二,其次,让我们来了解一下‘re模块’有那些可查找的函数方法?

在 Python 中,使用正则表达式可以通过以下几种方法进行匹配:

  1. re.match(pattern, string, flags=0):从字符串的开头开始匹配,如果匹配成功,则返回一个匹配对象;否则返回 None。

  2. re.search(pattern, string, flags=0):在整个字符串中搜索,找到第一个匹配项即返回匹配对象;如果没有找到匹配项,则返回 None。

  3. re.findall(pattern, string, flags=0):在字符串中查找匹配某个正则表达式的所有非重叠的字符串,并返回一个包含所有匹配项的列表;如果没有找到匹配项,则返回空列表。

  4. re.finditer(pattern, string, flags=0):在字符串中查找匹配某个正则表达式的所有非重叠的字符串,并返回一个包含所有匹配对象的迭代器。

  5. re.fullmatch(pattern, string, flags=0):尝试将整个字符串与正则表达式模式进行匹配,如果匹配成功,则返回一个匹配对象;否则返回 None。

  6. re.split(pattern, string, maxsplit=0, flags=0):使用正则表达式模式作为分隔符,将字符串分割为列表,并返回列表。

  7. re.sub(pattern, repl, string, count=0, flags=0):将字符串中符合正则表达式模式的部分替换为指定的内容。

这些方法都包含一个常用的参数 flags,用于控制匹配的方式,比如是否忽略大小写、是否进行多行匹配等。

这是一个示例代码,演示了使用正则表达式进行匹配的方法:

import re

# 使用 re.match
result = re.match(r'Hello', 'Hello, World!')
print(result)  # 输出: <re.Match object; span=(0, 5), match='Hello'>

# 使用 re.search
result = re.search(r'World', 'Hello, World!')
print(result)  # 输出: <re.Match object; span=(7, 12), match='World'>

# 使用 re.findall
result = re.findall(r'\d+', '123 apples, 456 oranges, 789 bananas')
print(result)  # 输出: ['123', '456', '789']

# 使用 re.finditer
result = re.finditer(r'\b[A-Z]\w+\b', 'Hello world! This is a Test Sentence.')
for match in result:
    print(match)  # 输出: <re.Match object; span=(0, 5), match='Hello'>
                  #       <re.Match object; span=(19, 23), match='Test'>
                  #       <re.Match object; span=(24, 32), match='Sentence'>

# 使用 re.fullmatch
result = re.fullmatch(r'Hello', 'Hello, World!')
print(result)  # 输出: None

# 使用 re.split
result = re.split(r'\s', 'Hello world! This is a Test Sentence.')
print(result)  # 输出: ['Hello', 'world!', 'This', 'is', 'a', 'Test', 'Sentence.']

# 使用 re.sub
result = re.sub(r'\d', '#', '123 apples, 456 oranges, 789 bananas')
print(result)  # 输出: ### apples, ### oranges, ### bananas

 

标签:匹配,re,python,正则表达式,result,字符串,Hello
From: https://www.cnblogs.com/lish007/p/16784645.html

相关文章

  • CyclicBarrier、CountDownLatch和Semaphore区别
    CyclicBarrier、CountDownLatch和Semaphore都是Java并发编程中常用的同步工具,它们在功能和使用方式上有一些区别。CyclicBarrier:CyclicBarrier用于多个线程之间互相等待,直到所有线程都到达某个屏障点后才继续执行。CyclicBarrier可以重复使用,每次到达屏障时,它的计数器会自动......
  • Python工具箱系列(四十)
    使用gzip对数据进行压缩这是python提供的压缩模块,便于用户对数据、文件进行压缩。功能类似于GNU应用程序gzip和gunzip。以下代码压缩一段字节流。importgzip#压缩一段英文originstr='TheWorldHealthOrganizationofficiallydeclaredonSaturdaythatthecurrent......
  • 全网最不墨迹解决方法,使用python3 worksheet.save()方式 出现:Test_list.worksheet.save(
    这是因为Worksheet对象没有save方法。要保存Excel工作簿,你需要使用Workbook对象的save方法。下面是一个修正后的示例代码:fromopenpyxlimportWorkbook#创建一个工作簿workbook=Workbook()#选择默认的活动工作表worksheet=workbook.active#定义要写入的数据列......
  • C#,连接数据库字符串汇总
     //-------------------SQLServer连接数据库字符串-------------20161216-----------------------------DataSource=服务器地址;InitialCatalog=数据库名;UserID=sa;Password=sa //-------------------ACCESS连接数据库字符串----------20161216--------------------......
  • python实现"对修改封闭, 对扩展开放"
    对修改封闭,对扩展开放是架构设计的基本原则.意思是如果程序增加新的功能,则不应该修改老的代码,只需要增加新的代码就可以了,这样可以避免对老功能的破坏,新增功能如果有问题,也很容易回退.python语言如何实现这个设计目标呢?可以使用我们之前提到的消息机制来实现:pyt......
  • CompletableFuture
    @SneakyThrows@OverridepublicSpuVOqueryDetail(Longid){//1.查询spuSpuVOspuVO=spuMapper.queryInfoById(id);if(spuVO==null){//是否存在此商品thrownewMallException("商品已删除");......
  • 关于Azure-存储账户-文件共享的内网访问-专用终结点连接-配置说明
    这里以标准性能的StorageV2的存储账户为例(即同时包含了容器,文件共享,队列,表)本文的实验环境,是想让Azure上的虚拟机通过内网访问文件共享,而数据连接不走Internet公网我们可以使用到存储账户,菜单下的Networking配置,下面的【专用终结点连接|Privateendpointconnections】 创建......
  • 2023 年如何将您的应用提交到 App Store
    您夜以继日地工作来创建您的梦想应用程序。最后,是时候向全世界宣布您的应用程序了。但不知道如何将您的应用提交到AppStore?为您的商店获取现成的移动应用程序将应用程序提交到AppStore可能是一项复杂的任务。但在本指南的帮助下,事情会变得容易得多。这是一份详细指南,......
  • java怎么设置定时任务(通过Executors.newScheduledThreadPool(1)方法)
    importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;publicclassdingshi{publicstaticvoidmain(String[]args)......
  • 生信:一起读官方文档 featureCounts 篇
    一起读官方文档featureCounts篇featureCounts介绍用于为高通量测序数据(例如RNA-seq、ChIP-seq、ATAC-seq等)计数读取(reads)与注释特征(例如基因、转录本)的重叠。它是Subread软件包的一部分,特别适用于RNA-seq数据的基因表达量分析。快速使用featureCounts\-a../genome/......