首页 > 编程语言 >Python正则表达式

Python正则表达式

时间:2024-05-29 19:57:59浏览次数:17  
标签:匹配 Python pattern 正则表达式 flags exp 字符串

语法

关于正则表达式的相关知识,大家可以阅读一篇非常有名的博客叫《正则表达式30分钟入门教程》,读完这篇文章后你就可以看懂下面的表格,这是我们对正则表达式中的一些基本符号进行的扼要总结。

符号解释示例说明
.匹配任意字符b.t可以匹配bat / but / b#t / b1t等
\w匹配字母/数字/下划线b\wt可以匹配bat / b1t / b_t等
但不能匹配b#t
\s匹配空白字符(包括\r、\n、\t等)love\syou可以匹配love you
\d匹配数字\d\d可以匹配01 / 23 / 99等
\b匹配单词的边界\bThe\b
^匹配字符串的开始^The可以匹配The开头的字符串
$匹配字符串的结束.exe$可以匹配.exe结尾的字符串
\W匹配非字母/数字/下划线b\Wt可以匹配b#t / b@t等
但不能匹配but / b1t / b_t等
\S匹配非空白字符love\Syou可以匹配love#you等
但不能匹配love you
\D匹配非数字\d\D可以匹配9a / 3# / 0F等
\B匹配非单词边界\Bio\B
[]匹配来自字符集的任意单一字符[aeiou]可以匹配任一元音字母字符
[^]匹配不在字符集中的任意单一字符[^aeiou]可以匹配任一非元音字母字符
*匹配0次或多次\w*
+匹配1次或多次\w+
?匹配0次或1次\w?
{N}匹配N次\w{3}
{M,}匹配至少M次\w{3,}
{M,N}匹配至少M次至多N次\w{3,6}
|分支foo|bar可以匹配foo或者bar
(?#)注释
(exp)匹配exp并捕获到自动命名的组中
(?<name>exp)匹配exp并捕获到名为name的组中
(?:exp)匹配exp但是不捕获匹配的文本
(?=exp)匹配exp前面的位置\b\w+(?=ing)可以匹配I’m dancing中的danc
(?<=exp)匹配exp后面的位置(?<=\bdanc)\w+\b可以匹配I love dancing and reading中的第一个ing
(?!exp)匹配后面不是exp的位置
(?<!exp)匹配前面不是exp的位置
*?重复任意次,但尽可能少重复a.*b
a.*?b
将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串
+?重复1次或多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{M,N}?重复M到N次,但尽可能少重复
{M,}?重复M次以上,但尽可能少重复

说明: 如果需要匹配的字符是正则表达式中的特殊字符,那么可以使用\进行转义处理,例如想匹配小数点可以写成\.就可以了,因为直接写.会匹配任意字符;同理,想匹配圆括号必须写成\(和\),否则圆括号被视为正则表达式中的分组。

Python对正则表达式的支持

Python提供了re模块来支持正则表达式相关操作,下面是re模块中的核心函数。

函数说明
compile(pattern, flags=0)编译正则表达式返回正则表达式对象
match(pattern, string, flags=0)用正则表达式匹配字符串 成功返回匹配对象 否则返回None
search(pattern, string, flags=0)搜索字符串中第一次出现正则表达式的模式 成功返回匹配对象 否则返回None
split(pattern, string, maxsplit=0, flags=0)用正则表达式指定的模式分隔符拆分字符串 返回列表
sub(pattern, repl, string, count=0, flags=0)用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数
fullmatch(pattern, string, flags=0)match函数的完全匹配(从字符串开头到结尾)版本
findall(pattern, string, flags=0)查找字符串所有与正则表达式匹配的模式 返回字符串的列表
finditer(pattern, string, flags=0)查找字符串所有与正则表达式匹配的模式 返回一个迭代器
purge()清除隐式编译的正则表达式的缓存
re.I / re.IGNORECASE忽略大小写匹配标记
re.M / re.MULTILINE多行匹配标记

说明: 上面提到的re模块中的这些函数,实际开发中也可以用正则表达式对象的方法替代对这些函数的使用,如果一个正则表达式需要重复的使用,那么先通过compile函数编译正则表达式并创建出正则表达式对象无疑是更为明智的选择。

标签:匹配,Python,pattern,正则表达式,flags,exp,字符串
From: https://blog.csdn.net/codelearning/article/details/139299552

相关文章

  • python之生成xmind
    今天为啥要说这个呢,因为前几天做接口测试,还要写测试用例,我觉得麻烦,所以我就用了python里面xmind的插件。自动生成了测试用例,数据来源是json。......
  • ChatGPT学习Python系列之Python装饰器
    ChatGPT学习Python系列之Python装饰器网上查询Python装饰器相关资料,质量层次不齐,通过问答形式利用ChatGPT3.5学习了Python装饰器相关的概念及示例,GPT给出的解答和示例代码质量非常高,总结如下。1.什么是python装饰器Python的装饰器是一种功能强大的语法,允许在不修改原始函数代......
  • python处理EXCEL
    !https://zhuanlan.zhihu.com/p/700537143python处理EXCEL在Python中,有多个库可以用来操作Excel文件。其中比较常用的有openpyxl、pandas,以及xlsxwriter。下面我将分别介绍这些库及其使用方法。一、openpyxl安装pipinstallopenpyxl示例代码fromopenpyxlimportWorkbo......
  • Python lambda函数
    Pythonlambda函数Python中的lambda函数,用于创建简洁的匿名函数。Lambda函数通常用于在需要函数作为参数的上下文中,以及在需要临时定义简单函数的地方。下面是一些关于lambda函数的基本知识和用法:1.lambda函数的基本语法lambdaarguments:expressionlambda关键字用于声明......
  • 用Python写一个热点事件追踪的算法
     要编写一个热点事件追踪的算法,首先需要明确算法的主要目标和所需的数据。在这个例子中,我们将基于微博的热度(如点赞数、转发数和评论数)来追踪热点事件。以下是一个简单的Python算法,仅供参考: 1.导入所需库 ```pythonimportrequestsfrombs4importBeautifulSoupimp......
  • Python截取函数
    在Python中,你可以使用切片(slice)来截取字符串、列表和其他序列类型的一部分。以下是一些常见的示例:1.**截取字符串**:```pythons="Hello,World!"substring=s[7:12] #从索引7开始到索引12(不包括12)结束print(substring) #输出:World```2.**使用负数索引截取**......
  • Python数据分析与挖掘实战(6章)
    非原创,仅个人关于《Python数据分析与挖掘实战》的学习笔记窃漏电数据分析导入相关库importwarningsimportmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspdimportxlrd#解决中文乱码plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axe......
  • Python中的压缩和解包: '*'、'**'和zip()
    python中*用途广泛,除了在数学运算中作为相乘还可以在其它方便扮演者对数据的解包之用途。*数学运算中的相乘对元组/列表的解包1.星号*可以用于在解包过程中收集多余的值。例如:numbers=(1,2,3,4,5)#解包时使用*收集多余的值a,b,*rest=numbersprint(a)#......
  • Python实用代码片段分享(一)
    在Python编程的旅途中,我们经常会遇到各种问题和挑战。为了帮助大家更高效地编写代码,今天我为大家分享几个实用的Python代码片段。这些代码片段涵盖了从数据处理到文件操作,再到性能优化等多个方面。希望它们能在你的项目中发挥作用!一、数据处理1.列表推导式列表推导式是Pytho......
  • Python中的pyttsx3库:文本到语音转换的利器
    pyttsx3是一个跨平台的文本到语音转换库,它可以在没有安装其他依赖项的情况下在Windows、Linux和macOS上运行。pyttsx3使用系统自带的TTS(文本到语音)引擎,因此可以确保在各种操作系统上都具有较高的稳定性和可用性。官方文档:https://pyttsx3.readthedocs.io/en/latest/https://py......