Python中re模块的常用方法总结

 更新时间:2021年04月08日 11:15:20   作者:北山啦  
这篇文章主要给大家介绍了关于Python中re模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

正则表达式作为计算机科学的一个概念,通常被用来检索、替换那些符合某个规则的文本。正则表达式是对字符串操作的一种逻辑公式,用事先定义好的规则字符串对字符串进行过滤逻辑处理。

re模块总结,正则表达式。在网络爬虫中对于数据定位,学习regex也很有必要

常用方法

  • re.compile()
    将指定的正则表达式模式编译为正则表达式对象,可用于匹配和搜索
  • re.match()
    该方法用于匹配字符串开头的模式
  • re.serach()
    该方法用于匹配出现在字符串中任意位置的模式
  • re.findall()
    该方法返回字符串中制定正则表达式模式的所有非重叠匹配项
  • re.finditer()
    对于从左到右扫描字符串中的特定模式,该方法以迭代器的形式返回所有匹配的实例
  • re.sub()
    用于以替换串来替代字符串中特定的模式,他仅仅替换字符串中最左侧出现的模式

重要标识符

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

常用表达式规则

举例说明

下面的代码描述了其中一些方法,并展示了在处理字符串和正则表达式通常如何使用他们

import re
pattern = "python"
s1 = "Python is an excellent language"
s2 = "I love Python language.I also use Python to build applicants at work!"

re.match(pattern, string, flags=0)

从起始位置开始根据模型去字符串中匹配指定内容,匹配单个

re.match(pattern,s1)

因为大小写,无法匹配成功

re.I 或 re.IGNORECASE 用于匹配不区分大小写的模式

re.match(pattern,s1,re.I)
<re.Match object; span=(0, 6), match='Python'>
re.match(pattern,s1,re.IGNORECASE)
<re.Match object; span=(0, 6), match='Python'>

re.search(pattern, string, flags=0)

根据模型去字符串中匹配指定内容,匹配单个

现在来看下find()和search()方法在正则表达式是如何工作的

re.search(pattern,s2,re.IGNORECASE)
<re.Match object; span=(7, 13), match='Python'>

re.findall(pattern, string, flags=0)

match and search均用于匹配单值,即:只能匹配字符串中的一个,如果想要匹配到字符串中所有符合条件的元素,则需要使用 findall。

re.findall(pattern,s2,re.IGNORECASE)

['Python', 'Python']

re.sub(pattern, repl, string, count=0, flags=0)

用于文本替换的正则表达式对于查找和替换字符串中的特定文本标识符很有用

用于替换匹配的字符串,比str.replace功能更加强大

re.sub(pattern,"Java",s2,flags=re.I)

'I love Java language.I also use Java to build applicants at work!'

re.subn(pattern,"Java",s2,flags=re.I)

('I love Java language.I also use Java to build applicants at work!', 2)

re.split(pattern, string, maxsplit=0, flags=0)

用匹配到的值做为分割点,把值分割成列表

s1

'Python is an excellent language'

re.split(" ",s1)

['Python', 'is', 'an', 'excellent', 'language']

按数字分割

print(re.split("\d+","https://blog.csdn.net/qq_45176548"))

‘(?P…)' 分组匹配

s = '230701200104280028'
print(re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_date>\d{8})(?P<seq>\d{4})',s))
print(re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_date>\d{8})(?P<seq>\d{4})',s).groups())
res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_date>\d{8})(?P<seq>\d{4})',s)
print(res.groupdict())

<re.Match object; span=(0, 18), match='230701200104280028'>
('230', '701', '20010428', '0028')
{'province': '230', 'city': '701', 'born_date': '20010428', 'seq': '0028'}
---

总结

到此这篇关于Python中re模块常用方法的文章就介绍到这了,更多相关Python中re模块方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解pandas数据合并与重塑(pd.concat篇)

    详解pandas数据合并与重塑(pd.concat篇)

    这篇文章主要介绍了详解pandas数据合并与重塑(pd.concat篇),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python filter过滤器原理及实例应用

    Python filter过滤器原理及实例应用

    这篇文章主要介绍了Python filter过滤器原理及实例应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 详解Python中使用base64模块来处理base64编码的方法

    详解Python中使用base64模块来处理base64编码的方法

    8bit的bytecode经常会被用base64编码格式保存,Python中自带base64模块对base64提供支持,这里我们就来详解Python中使用base64模块来处理base64编码的方法,需要的朋友可以参考下
    2016-07-07
  • python GUI库图形界面开发之PyQt5开发环境配置与基础使用

    python GUI库图形界面开发之PyQt5开发环境配置与基础使用

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5开发环境配置与基础使用,需要的朋友可以参考下
    2020-02-02
  • python tkinter实现屏保程序

    python tkinter实现屏保程序

    这篇文章主要为大家详细介绍了python tkinter实现屏保程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python获取指定文件夹下的文件名的方法

    Python获取指定文件夹下的文件名的方法

    本篇文章主要介绍了Python获取指定文件夹下的文件名的方法,本文采用os.walk()和os.listdir()两种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python学生成绩管理系统简洁版

    Python学生成绩管理系统简洁版

    这篇文章主要为大家详细介绍了简洁版的Python学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • python中如何实现将数据分成训练集与测试集的方法

    python中如何实现将数据分成训练集与测试集的方法

    这篇文章主要介绍了python中如何实现将数据分成训练集与测试集的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 后端开发使用pycharm的技巧(推荐)

    后端开发使用pycharm的技巧(推荐)

    这篇文章主要介绍了后端开发使用pycharm的技巧,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python按顺序重命名文件并分类转移到各个文件夹中的实现代码

    python按顺序重命名文件并分类转移到各个文件夹中的实现代码

    这篇文章主要介绍了python按顺序重命名文件并分类转移到各个文件夹中,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论