一文掌握Python正则表达式

 更新时间:2022年06月02日 16:20:36   作者:宋小童  
这篇文章主要介绍了Python正则表达式的相关知识,主要包括re模块的使用及正则表达式基础知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。最初的正则表达式出现于理论计算机科学的自动控制理论和形式化语言理论中。

安装 Python 解释器/anaconda。

安装好 jupyter lab。

re 模块的使用

匹配方法的使用

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 none。

# 导入 re 模块 
import re
print(re.match('www', 'www.huawei.com').span()) # 在起始位置匹配
print(re.match('com', 'www.huawei.com')) # 不在起始位置匹配

输出: (0, 3)

None

re.search 扫描整个字符串并返回第一个成功的匹配。

import re 
print(re.search('www', 'www.huawei.com').span()) # 在起始位置匹配 
print(re.search('com', 'www.huawei.com').span()) # 不在起始位置匹配

  输出: (0, 3)
        (11, 14)

compile 方法的使用

re.compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

pattern = re.compile(r'\d+') # 用于匹配至少一个数字 
n = pattern.match('one12twothree34four') # 查找头部,没有匹配
print(n) # 从'e'的位置开始匹配,没有匹配
m = pattern.search('one12twothree34four')
print(m)
print(m.group())

    输出: None 
            12

re 模块其他方法的使用

re.sub 用于替换字符串中的匹配项: 
phone = "2021-0101-000 # 这是一个电话号码" 
# 删除字符串中的 Python 注释 
num = re.sub(r'#.*$', "", phone) 
print("电话号码是: ", num) # 删除非数字(-)的字符串 
num = re.sub(r'\D', "", phone) 
print("电话号码是 : ", num) 

输出: 
电话号码是: 2021-0101-000 
电话号码是 : 20210101000

正则表达式基础

匹配数字

使用正则表达式来匹配数字:

# 匹配文本中的所有数字 
str_ = "996.ICU 指工作 996、生病 ICU,也就是工作从早上 9 点上班到晚上 9 点下班,每周工作 6 天, 生病了就住进 ICU" 
num1 = re.findall(r'\d+', str_) # 使用\d 匹配数字,+表示匹配多次
print(num1)
num2 = re.findall(r'[0-9]{1,3}', str_) # 正则表达式不唯一,可以使用[]指定匹配元素的范围 {}指定次数 
print(num2)

 输出: ['996', '996', '9', '9', '6']
       ['996', '996', '9', '9', '6']

匹配字符

使用\w 可以匹配数字字母下划线:

匹配符号

# 匹配文本中的所有符号 
s6 = re.findall(r'\W+', str_) 
print(s6)

到此这篇关于Python正则表达式的文章就介绍到这了,更多相关Python正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用requests库进行请求重试

    Python使用requests库进行请求重试

    在进行网络请求时,由于网络波动、服务器繁忙等原因,可能会出现请求失败的情况,为了提高请求的成功率,我们可以使用请求重试机制,本文就来讲讲如何在 Python 中使用 requests 库进行请求重试吧
    2023-06-06
  • Python使用draw类绘制图形示例讲解

    Python使用draw类绘制图形示例讲解

    这篇文章主要介绍了Python使用draw类绘制图形的哪些函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python input函数使用实例解析

    Python input函数使用实例解析

    这篇文章主要介绍了Python input函数使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python图片检索之以图搜图

    Python图片检索之以图搜图

    由于很多论文里面的测试图片没有标号,就不能确定它们是Testset数据集中哪几张图片.为了能解决这个问题,需要完成以图片去搜索整个数据集文件目录的任务.本文有非常详细的图文示例,需要的朋友可以参考下
    2021-05-05
  • Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例

    Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例

    这篇文章主要介绍了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能,结合实例形式分析了Python+Socket实现带自动回复功能的TCP聊天程序相关操作方法与注意事项,需要的朋友可以参考下
    2017-08-08
  • Django 设置admin后台表和App(应用)为中文名的操作方法

    Django 设置admin后台表和App(应用)为中文名的操作方法

    这篇文章主要介绍了Django 设置admin后台表和App(应用)为中文名的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Python判断变量名是否合法的方法示例

    Python判断变量名是否合法的方法示例

    今天小编就为大家分享一篇关于Python判断变量名是否合法的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python去除文件中空格、Tab及回车的方法

    python去除文件中空格、Tab及回车的方法

    这篇文章主要介绍了python去除文件中空格、Tab及回车的方法,涉及Python针对文件与字符串操作的相关技巧,需要的朋友可以参考下
    2016-04-04
  • Python中threading模块的Lock和RLock区别详解

    Python中threading模块的Lock和RLock区别详解

    这篇文章主要介绍了Python中threading模块的Lock和RLock区别详解,Lock锁是Python的原始锁,在锁定时不属于任何一个线程,在调用了 lock.acquire() 方法后,进入锁定状态,lock.release()方法可以解锁,底层是通过一个函数来实现的,需要的朋友可以参考下
    2023-09-09
  • Python使用DPKT实现分析数据包

    Python使用DPKT实现分析数据包

    dpkt项目是一个Python模块,主要用于对网络数据包进行解析和操作,z这篇文章主要为大家介绍了python如何利用DPKT实现分析数据包,有需要的可以参考下
    2023-10-10

最新评论