首页 > 编程语言 >1、Python 正则表达式:基本介绍

1、Python 正则表达式:基本介绍

时间:2024-03-23 09:02:19浏览次数:16  
标签:字符 匹配 Python 介绍 正则表达式 斜杠 字符串

点击上方分类专栏、进行系统性学习(文末可扫码领取资料)

  • 正则表达式(Regular Expression)是计算机科学的一个概念。“Regular”一般被译为“正则”、“正规”、“常规”。此处的“Regular”即“规则、规律”的意思,Regular Expression 即“描述某种规则的表达式”。
  • 正则表达式使用单个字符串来匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

1、匹配单字符(元字符)

字符

功能

.

匹配任意 1 个字符(\n除外)

[...]

匹配[ ]中列举的字符

[^...]

匹配除了字符组中字符之外的字符

\d

匹配数字(0-9)

\D

匹配非数字

\s

匹配空白,即 (空格)、tab 键

\S

匹配非空白

\w

匹配单词字符(字母、数字、下划线_

\W

匹配非单词字符

\n

匹配一个换行符

\t

匹配一个制表符

\b

匹配一个单词的结尾

a|b

匹配字符 a 或字符 b

()

正则表达式分组所用符号,匹配括号内的表达式,表示一个组

2、转义字符("\"

  • 如果使用正则表达式匹配特殊字符,则需在字符前加"\"表示转义。常见的特殊字符:* + ? ^ $ [] () {} | \
  • 正则表达式里使用"\"作为转义字符。如果要匹配文本中的"\",正则表达式里将需要 4 个反斜杠(其中的两个对应为转移字符)转换为 2 个反斜杠,再匹配到字符串中的两个反斜杠(含转移字符对应的反斜杠)。Python 里的原生字符串很好地解决了这个问题,有了原始字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。
    • Python 中在字符串前面加上r表示原生字符串

3、匹配多个字符

字符

功能

*

匹配前一个字符出现 0 次或无限次

+

匹配前一个字符出现 1 次或无限次

?

匹配前一个字符出现 1 次或 0 次

{m}

匹配前一个字符出现 m 次

{m,}

匹配前一个字符出现至少 m 次

{m,n}

匹配前一个字符出现 m 到 n 次

4、匹配边界

字符

功能

^

匹配字符串开头

$

匹配字符串结尾

\b

匹配一个单词的边界

\B

匹配非单词边界

5、匹配分组

字符

功能

|

匹配左右任意一个表达式

(ab)

将括号中字符作为一个分组

\num

引用分组 num 匹配到的字符串

(?P<name>)

给分组起别名

(?P=name)

引用别名为 name 分组匹配到的字符串

6、贪婪匹配、非贪婪匹配

  • Python 里数量词默认是贪婪的:总是尝试匹配尽可能多的字符
  • 非贪婪:总是尝试匹配尽可能少的字符
  • 可以在*?+{m,n}后面加上?,使贪婪变成非贪婪。

融码一生:专注 Python、Linux、C/C++、机器学习 & 深度学习 & NLP 领域创作

下方扫码关注公众号,获取完整 PDF / 线上电子书

标签:字符,匹配,Python,介绍,正则表达式,斜杠,字符串
From: https://blog.csdn.net/m0_66491750/article/details/136957447

相关文章

  • 【python】(05)如何python中的logging模块记录日志信息
    系列文章回顾【python】(01)初识装饰器Decorator【python】(02)初识迭代器Iterator【python】(03)初识生成器Generator【python】(04)python中实现多任务并发和并行的区别【python】(05)如何python中的logging模块记录日志信息文章目录一.Logging模块的常用组......
  • Linux中的IO模型介绍
    一、IO是什么I/O(Input/Output),中文名为输入/输出,指的是一切操作程序或设备与计算机之间发生的数据传输的过程。它分为IO设备和IO接口两个部分。IO设备,就是指可以与计算机进行数据传输的硬件。最常见的I/O设备有打印机、硬盘、键盘和鼠标。从严格意义上来讲,它们中有一些只能算......
  • Python 机器学习 维特比算法和鲍姆-韦尔奇算法
    在机器学习和信号处理领域,特别是在处理隐马尔可夫模型(HiddenMarkovModels,HMM)时,维特比算法(ViterbiAlgorithm)和鲍姆-韦尔奇算法(Baum-WelchAlgorithm)是两个核心算法,用于不同的目的。维特比算法用于解决解码问题,即在给定观察序列的情况下找到最可能的状态序列。它通过动态规......
  • python-day01
    python基础语法注释单行注释:#注释内容多行注释:"""多行注释"""type()语句判断类型例如:print(type(123))print(type(23.4))print(type("Hello"))输出为:数据类型转换int(x)<===>将x转换为一个整数float(x)<===>将x转换为一个浮点数str(x)......
  • Mall4j开源商城系统-基于SpringBoot+Vue系统开发介绍
     今天来介绍一款非常不错的Mall4j开源商城系统Mall4j开源商城,一个基于springboot、springoauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的开源商城。目录 今天来介绍一......
  • 最大化运输问题求解——Python实现
    运输问题(TransportationProblem)是运筹学中的经典问题,通常涉及将资源从供应点转移到需求点,以最小化运输成本或满足需求。这个问题在各种实际场景中都有广泛的应用,包括但不限于以下几个方面:供应链管理:在供应链中,最小化运输问题可用于确定最有效的货物运输方式,以满足各个节点之间的......
  • 睡眠分期介绍
     睡眠可以分为两大类:快速眼动(REM)睡眠和非快速眼动(NREM)睡眠。整个睡眠周期大约90到110分钟,成人每晚会经历四到六个这样的周期。每个周期包括NREM睡眠的三个阶段和一个REM睡眠阶段,每个阶段有其特定的生理特征。###NREM睡眠####1.NREM第一阶段(N1)-**时间**:占总睡眠时间的5%左......
  • python 教你如何创建一个自定义库 colorlib.py
    目录Colorlib生成代码模块代码导入测试测试一测试二应用测试颜色列表colorList随机颜色元组randcolorTuples随机颜色字串randcolorStringsColor类测试测试一测试二题外话Colorlib有没有碰到过这样的场景:写代码时想要用上丰富的色彩,但苦思冥想搜肠刮肚只记......
  • 全网最详细介绍如何实现图片存储阿里OSS实现资源持久化存储
    什么是阿里云OSS阿里云OSS(ObjectStorageService,对象存储服务)是阿里云提供的一种存储服务,它支持任意类型的数据存储,如图片、视频、日志文件等。OSS以对象(Object)的形式组织数据,并存储在容器(Bucket)中。每个对象由其数据和元数据组成,对象被唯一地标识,使得用户可以在全球任何......
  • Python学习之selenium爬取英雄联盟网页
    获取英雄联盟网页importtimeimportfake_useragentimportrequestsfromseleniumimportwebdriver#英雄联盟爬虫#selenium#pipinstallselenium#url,request方法来请求英雄联盟网页,但是获取时会存在来不及渲染的情况,即无法显示整个页面url='https://......