首页 > 编程语言 >Python 内置正则表达式库re的使用

Python 内置正则表达式库re的使用

时间:2024-05-14 16:32:07浏览次数:15  
标签:内置 匹配 string Python pattern re 字符串 正则表达式

什么是正则表达式

  • 正则表达式就是记录文本规则的代码
  • 可以查找操作符合某些复杂规则的字符串

使用场景

  • 处理字符串
  • 处理日志

在 python 中使用正则表达式

  • 把正则表达式作为模式字符串
  • 正则表达式可以使用原生字符串来表示
  • 原生字符串需要在字符串前方加上 r'string'
# 匹配字符串是否以 hogwarts_ 开头

r'hogwart_\w+'

正则表达式对象转换

  • compile():将字符串转换为正则表达式对象
  • 需要多次使用这个正则表达式的场景
import re

'''
prog:正则对象,可以直接调用匹配、替换、分割的方法,不需要再传入正则表达式
pattern:正则表达式
'''

prog = re.compile(pattern)

匹配字符串

  • match():从字符串的开始处进行匹配
  • search():在整个字符串中搜索第一个匹配的值
  • findall():在整个字符串中搜索所有符合正则表达式的字符串,返回列表
import re

'''
pattern: 正则表达式
string: 要匹配的字符串
flags: 可选,控制匹配方式
    - A:只进行 ASCII 匹配
    - I:不区分大小写
    - M:将 ^ 和 $ 用于包括整个字符串的开始和结尾的每一行
    - S:使用 (.) 字符匹配所有字符(包括换行符)
    - X:忽略模式字符串中未转义的空格和注释
'''

re.match(pattern, string, [flags])
re.search(pattern, string, [flags])
re.findall(pattern, string, [flags])

替换字符串

  • sub():实现字符串替换
import re

'''
pattern:正则表达式
repl:要替换的字符串
string:要被查找替换的原始字符串
count:可选,表示替换的最大次数,默认值为 0,表示替换所有匹配
flags:可选,控制匹配方式
'''

re.sub(pattern, repl, string, [count], [flags])

分割字符串

  • split():根据正则表达式分割字符串,返回列表
import re

'''
pattern:正则表达式
string:要匹配的字符串
maxsplit:可选,表示最大拆分次数
flags:可选,控制匹配方式
'''

re.split(pattern, string, [maxsplit], [flags])

标签:内置,匹配,string,Python,pattern,re,字符串,正则表达式
From: https://www.cnblogs.com/hogwarts/p/18191564

相关文章

  • 爬虫 python的第一天
    1、安装pycharm及python相关的安装2、新建python项目3、引包 importrequestspipinstallrequests4、打开网页,找打你想要爬的数据URL 5、写代码获取到对应的数据,保存到本地。importrequestsurl="https://sns-video-al.xhscdn.com/stream/110/259/01e640315b0ef......
  • react什么时候用函数组件,什么时候用类组件
    在React中,使用函数组件还是类组件取决于你的需求和个人偏好。在过去,类组件是主要的React组件形式,但是随着ReactHooks的引入,函数组件也变得非常强大,两者之间的差异已经减小。以下是一些指导原则:简单的UI组件:对于简单的UI组件,如按钮、图标、展示静态内容的组件等,使用......
  • Python 内置库 多线程threading使用讲解
    线程基本使用单线程defmain():print("在扔一个苹果")if__name__=="__main__":main()多线程Python提供了thread、threading等模块来进行线程的创建与管理,后者在线程管理能力上更进一步,因此我们通常使用threading模块。创建一个线程需要指定该线程执行的任务(函......
  • Vue2入门之超详细教程十七-常用内置命令集合
    Vue2入门之超详细教程十四-常用内置指令集合1、简介常用内置指令集合v-bind:单向绑定解析表达式,可简写为:xxxv-model:双向数据绑定v-for:遍历数组/对象/字符串v-on:绑定时间监听,可简写为@v-if:条件渲染(动态控制节点是否存在)v-else:条件渲染(动态控制节点是否存在)v-show:条件渲染......
  • Python 中寻找列表最大值位置的方法
    前言在Python编程中,经常需要对列表进行操作,其中一个常见的任务是寻找列表中的最大值以及其所在的位置。本文将介绍几种方法来实现这个任务。方法一:使用内置函数max()和index()Python提供了内置函数max()来找到列表中的最大值,同时可以使用index()方法找到该最大值在......
  • CompletableFuture allOf 和 anyOf
    CompletableFuture<String>future1=CompletableFuture.supplyAsync(()->{List<String>objects=newArrayList<>();Strings=objects.get(0);return"成功";}).exceptionally(ex->{//这样的话future2就可以正常执行......
  • 实现Python日志点击跳转到代码位置的方法
    前言在软件开发过程中,日志是一种非常重要的工具,用于记录程序运行时的状态、错误信息以及调试信息。当程序出现问题时,定位到具体的代码位置对于排查问题至关重要。本文将介绍如何在Python日志中实现点击跳转到代码位置的功能,以提高调试效率。为什么需要点击跳转功能?通常情况下,......
  • 零操作,高效下载:利用Playwright和Python完成文件下载
    前言Playwright是一个由Microsoft开发的跨浏览器自动化测试工具,它提供了强大的功能来模拟用户在浏览器中的操作。Playwright还可以应用于诸如文件下载等实际场景的测试。本文将介绍如何利用Playwright在Python中实现文件下载功能。文件下载文件下载也是我们进行web自......
  • java.net.SocketException: Connection reset
    今天在学习socket编程的时候遇到了一个bug:java.net.SocketException:Connectionreset先来看一下自己的代码:服务端:publicclassServerSocketDemo{publicstaticvoidmain(String[]args){try{//建立一个ServerSocketServerS......
  • Mysql批量插入数据(python脚本)
    有个需求:需要在table1中插入205条数据,role_id固定为65,menu_id从91开始方法二:python脚本实现PyMySQL是一个纯Python编写的MySQL客户端库,用于连接和操作MySQL数据库。以下是PyMySQL的主要功能和优点:功能:数据库连接:PyMySQL提供了connect()方法,用于建立与MySQL数据库的连接。一旦......