python中re模块与正则表达式的介绍(附代码)

本篇文章给大家带来的内容是关于python中re模块与正则表达式的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

正则表达式规则,单字符匹配

字符 功能 正则表达式示例 符合匹配示例

.匹配任意一个字符(除了n)b.bbab,b2b[ ]匹配来自[]中字符集的任意一个字符i [abCde]mi amd匹配任何十进制数字,与[0-9]一致wdcschoolw3cschoolD匹配非数字,即不是数字mouDhmouths匹配任何空格字符,与[]相同islikei likeS匹配任何非空白字符,与s相反nSenoe,n3ew匹配任何字母数字字符,与[A-Za-z0-9_]相同[A-Za-z]w+
W匹配非单词字符[0-9]W[A-Z]3 A

表示数量匹配

字符 功能 正则表达式示例 符合匹配的示例

*匹配0次或者多次前面出现的正则表达式,即可有可无a*aaa
+匹配前一个字符出现1次或者无限次,即至少有一次a+aaa
?匹配前一个字符出现1次或者0次,要么有一次,要么没有a?a或者b
{m}匹配前一个字符出现m次[0-9]{5}12345
{m.}匹配前一个字符至少出现m次a{5.}aaaaa
{m,n}匹配前一个字符出现从m到n次a{2,6}aaa

表示边界匹配

字符 功能 正则表达式示例

^匹配字符串起始部分^Dear$匹配字符串终止部分fi$b匹配任何单词的边界TheB匹配非单词边界.*Bver

匹配分组

字符 功能

匹配左右任意一个表达式
(ab)将括号中字符作为一个分组
um引用分组num匹配到的字符串
(?P)分组起别名
(?P=name)引用别名为name分组匹配到的字符串

re模块

在python中,可以使用内置的re模块来使用正则表达式

re模块常见的函数和方法

核心函数 说明

compile(pattern,flags=0)使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象

re模块函数和正则表达式对象方法 说明

match(pattern,string,flags=0)尝试使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象; 如果失败,就返回 Nonesearch(pattern,string,flags=0)使用可选标记搜索字符串中第一次出现的正则表达式模式。 如果匹配成功,则返回匹配对象; 如果失败,则返回 Nonefindall(pattern,string,[,flags])查找字符串中所有出现的正则表达式,并返回一个列表split(pattern,string,max=0)根据正则表达式的模式分隔符,spilt函数将字符串分割为列表,然后返回成功匹配的列表,分割最多操作max次(默认分割所有匹配成功的位置)sub(pattern,repl,string,count=0)使用repl替换所有正则表达式的模式在字符串中出现的位置,除非定义count,否则就将替换所有出现的位置

常用的匹配对象方法 说明

group(num=0)默认返回整个匹配对象或者返回编号为num的特定子组groups(default=None)返回一个包含所有匹配子组的元组,如果没有成功匹配,返回一个空元组span()

常用的模块属性,大多数用于对正则表达式函数的修饰 说明

re.I使匹配对大小写不敏感(忽略大小写)re.S.(点号)匹配除了n之外的所有字符,re.S标记表示.(点号)能够匹配全部字符re.M多行匹配,影响^和$re.U根据Unicode字符集解析字符。影响w,W,和Bre.X该标志通过给予你更灵活的格式以便你讲正则表达式写得更易于理解

re模块一般的使用方法

使用 compile() 函数将正则表达式的字符串形式编译为一个正则表达式对象;

通过正则表达式对象提供的一系列方法(如:match())对文本进行匹配查找,获得匹配结果,一个Match对象;

立即学习“Python免费学习笔记(深入)”;

最后使用Match对象提供的属性和方法(例如:group())获得信息,根据需要进行其他的操作。

re模块使用示例

导入模块

import re

登录后复制

compile()函数
compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:

import re# 将正则表达式编译成pattern对象pattern = re.compile(r'd+')

登录后复制

编译成正则表达式对象后,就可以使用上面所说的正则表达式对象方法了。

match()方法
match 方法用于查找字符串的头部(也可以指定起始位置),它是一次匹配,只要找到了一个匹配的结果就返回,而不是查找所有匹配的结果。它的一般使用形式如下:

match(string[, pos[, endpos]])

登录后复制

其中,string是待匹配的字符串,pos 和 endpos 是可选参数,指定字符串的起始和终点位置,默认值分别是 0 和 len (字符串长度)。因此,当你不指定 pos 和 endpos 时,match 方法默认匹配字符串的头部。

当匹配成功时,返回一个 Match 对象,如果没有匹配上,则返回 None。

>>> import re>>> >>> pattern = re.compile(r'd+') # 正则表达式表示匹配至少一个数字>>> >>> m = pattern.match("one2three4") # match默认从开头开始匹配,开头是字母o,所以没有匹配成功>>> print(m) # 匹配失败返回NoneNone>>> >>> m = pattern.match("1two3four") # 开头字符是数字,匹配成功>>> print(m)>>> >>> m.group() # group()方法获取匹配成功的字符'1'>>> m = pattern.match("onetwo3four56",6,12) # 指定match从数字3开始查找,第一个是数字3,匹配成功>>> print(m)>>> m.group()'3'

登录后复制

以上就是python中re模块与正则表达式的介绍(附代码)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2534004.html

(0)
上一篇 2025年3月5日 21:24:20
下一篇 2025年3月5日 18:16:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么找到黑客的联系方式?

    如果你想要找到黑客的联系方式,那么你可能面临以下难题:黑客往往会隐藏他们的身份,并且他们的联系方式很难被发现。php小编草莓在这里为你提供了一份指南,旨在帮助你找到黑客的联系方式。在本指南中,我们将介绍一些常见的黑客使用的联系方式,并提供一…

    2025年3月5日
    200
  • Python中Pandas读取修改excel操作攻略(代码示例)

    本篇文章给大家带来的内容是关于python中pandas读取修改excel操作攻略(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 环境:python 3.6.8 以某米赛尔号举个例子吧: 立即学习“Python…

    2025年3月5日 编程技术
    200
  • Python线程中定位与销毁的详细介绍(附示例)

    本篇文章给大家带来的内容是关于python线程中定位与销毁的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 开工前我就觉得有什么不太对劲,感觉要背锅。这可不,上班第三天就捅锅了。 我们有个了不起的后台程序…

    2025年3月5日 编程技术
    200
  • Python中如何重命名多个文件

    在python3中可以使用rename()方法+listdir()方法来重命名多个文件,这两个方法都是os模块的一部分,非常方便。下面本篇文章就来带大家了解一下rename()和listdir()方法,介绍使用rename()方法+list…

    2025年3月5日
    200
  • pandas修改DataFrame列名的方法介绍(代码示例)

    本篇文章给大家带来的内容是关于pandas修改dataframe列名的方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 本文参考自:pandas 修改 DataFrame 列名 原博客针对每个DataFr…

    编程技术 2025年3月5日
    200
  • Python文件操作的介绍(代码示例)

    本篇文章给大家带来的内容是关于Python文件操作的相关知识介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 1、文件操作 1-1 遍历文件夹和文件 import osrootDir = “/path/to/…

    编程技术 2025年3月5日
    200
  • python中yield的用法介绍(附代码)

    本篇文章给大家带来的内容是关于微信小程序python中yield的用法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这…

    编程技术 2025年3月5日
    200
  • python语言能做什么

    python语言可以用来做许多事,常见的一般有web开发、爬虫开发、人工智能以及游戏开发和构建桌面软件等等 Python是一个非常好用的编程语言而且开发速度快,语法简单通俗易懂,容易上手。非常适合初学者是一个非常好用的编程语言,开发的速度非…

    2025年3月5日
    200
  • Python装饰器的详细用法介绍(代码示例)

    本篇文章给大家带来的内容是关于python装饰器的详细用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在Python中,装饰器一般用来修饰函数,实现公共功能,达到代码复用的目的。在函数定义前加上@xxx…

    编程技术 2025年3月5日
    200
  • Python实现二叉树的算法实例

    本篇文章给大家带来的内容是关于Python实现二叉树的算法实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 节点定义 class Node(object): def __init__(self, left_child, …

    编程技术 2025年3月5日
    200

发表回复

登录后才能评论