Python正则表达式之模式修正符,你get了吗?

​大家好,今天我要和大家分享一个Python编程中的神秘武器——正则表达式模式修正符!正则表达式,对于很多编程新手来说,可能是一个头疼的问题。但别担心,模式修正符就像是你手中的魔法棒,让你的正则表达式更加灵活、更加强大!

什么是模式修正符?Python中的模式修正符就是用来调整正则表达式行为的强大工具,主要用于修饰正则表达式。它们就像是给正则表达式戴上了不同的“眼镜”,让它能在不同的场景下看得更清楚。

下面,就让我来给大家介绍几个常用的模式修正符吧!

  • re.S:表示可以让正则表达式匹配换行,\n表示换行

  • re.I:表示可以让正则表达式忽略字母大小写

  • .:表示匹配除了换行之外的任意字符​

小提示:使用模式修正符时,记得在正则表达式字符串的开头加上一个“r”或“R”,表示这是一个原始字符串,里面的反斜杠不会被当作转义字符。

让我们一起来看看下面的实例​:

# 导入re模块
import reprint(re.search("shenzhen.", "shenzhen123hello"))    # <re.Match object; span=(0, 9), match='shenzhen1'>
print(re.search("shenzhen.", "shenzhenhello123"))    # <re.Match object; span=(0, 9), match='shenzhenh'>
print(re.search("shenzhen.", "shenzhen\n"))    # None 不能匹配换行的情况
print(re.search("shenzhen.", "shenzhen\n", re.S))    # <re.Match object; span=(0, 9), match='shenzhen\n'> 通过模式修正符可以匹配换行的效果
print(re.search("shenzhen[a-z]", "shenzhenhello"))    # <re.Match object; span=(0, 9), match='shenzhenh'>
print(re.search("shenzhen[a-z]", "shenzhenHELLO"))    # None
print(re.search("shenzhen[a-z]", "shenzhenHELLO", re.I))    # <re.Match object; span=(0, 9), match='shenzhenH'> 通过模式修正符忽略字母大小写

现在,你是不是对Python正则表达式中的模式修正符有了更深入的了解呢?快去试试吧,让你的正则表达式更加强大!

如果你觉得这个分享对你有帮助,别忘了点个赞👍和分享给更多的朋友哦!

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

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

相关文章

2024创业:开一个抖店,哪怕当副业去做也行!

我是王路飞。 绝大多数人之所以走上创业这条路&#xff0c;原本的理由可能没有这么高大上。 就像我自己当初创业走上电商这条路一样&#xff0c;就一句话&#xff1a;走到绝路了&#xff0c;没办法了&#xff0c;只能闯一把&#xff0c;不让自己饿死。 创业之难&#xff0c;…

流域生态系统水-碳-氮耦合过程模拟

原文链接&#xff1a;流域生态系统水-碳-氮耦合过程模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598401&idx2&sn4c972ff3a9046094042a0a3dc65e9764&chksmfa8200a6cdf589b01b0af612a5810e6eda02cc9e7f5232db9157ff85de28626a8f4f1878fd9f&…

PTA L2-041 插松枝 代码附注释

人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上&#xff0c;做成大大小小的松枝。他们的工作流程&#xff08;并不&#xff09;是这样的&#xff1a; 每人手边有一只小盒子&#xff0c;初始状态为空。每人面前有用不完的松枝干和一个推送器&#xff0c;每次推送一…

leetcode106从中序与后序遍历序列构造二叉树

目录 1.解题关键2.思路3.变量名缩写与英文单词对应关系4.算法思路图解5.代码 本文针对原链接题解的比较晦涩的地方重新进行说明解释 原题解链接&#xff1a;https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/solutions/50561/tu-jie-…

PHP的IntlChar类:处理Unicode字符的强大工具

PHP的IntlChar类&#xff1a;处理Unicode字符的强大工具 在处理多语言和国际化应用程序时&#xff0c;Unicode字符的解码是必不可少的一环。PHP的IntlChar类为我们提供了强大的工具来解码Unicode字符。本文将深入探讨PHP的IntlChar类&#xff0c;介绍其功能、用法和优势&#x…

基于SpringBoot和Vue的大学生租房系统的设计与实现

今天要和大家聊的是一款今天要和大家聊的是一款基于SpringBoot和Vue的大学生租房系统的设计与实现。 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同…

初识数据库原理:为什么需要数据库?

初识数据库原理&#xff1a;什么是数据库&#xff1f; Chapter1&#xff1a;什么是数据库&#xff1f; 笔记来源&#xff1a;《漫画数据库》–科学出版社 1.1 为什么需要数据库&#xff1f; 文件应用的管理方式&#xff0c;数据会出现重复。 若各个部门各自管理自己一方的数…

【Flutter学习笔记】10.2 组合现有组件

参考资料&#xff1a; 《Flutter实战第二版》 10.2 组合现有组件 在Flutter中页面UI通常都是由一些低级别组件组合而成&#xff0c;当我们需要封装一些通用组件时&#xff0c;应该首先考虑是否可以通过组合其他组件来实现&#xff0c;如果可以&#xff0c;则应优先使用组合&…

Uibot6.0 (RPA财务机器人师资培训第2天 )采购付款——网银付款机器人案例实战

训练网站&#xff1a;泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff0…

微软开源Garnet高性能缓存服务安装

Garnet介绍 Garnet是一款微软研究院基于C#开发而开源的高性能缓存服务&#xff0c;支持Windows、Linux多平台部署&#xff0c;Garnet兼容Redis服务API&#xff0c;在性能和使用架构上较Redis有很大提升&#xff08;官方说法&#xff09;&#xff0c;并提供与Redis一样的命令操…

深入解析权限之钥RBAC模型!

在2B系统中设计中&#xff0c;角色基于访问控制&#xff08;RBAC&#xff0c;Role-Based Access Control&#xff09;是最常见的权限管理模型之一。它将权限分配给角色而非个别用户&#xff0c;简化了权限管理的过程。接下来我们一起了解下几种常见的RBAC模型。 1. 标准 RBAC&…

【Linux】多线程编程基础

&#x1f4bb;文章目录 &#x1f4c4;前言&#x1f33a;linux线程基础线程的概念线程的优缺点线程与进程的区别 线程的创建 &#x1f33b;linux线程冲突概念互斥锁函数介绍加锁的缺点 &#x1f4d3;总结 &#x1f4c4;前言 无论你是否为程序员&#xff0c;相信多线程这个词汇应…