Python的正则表达式怎么实现

Python 正则表达式

正则表达式本身是独立于编程语言的知识,但是它又依附于编程语言,基本上我们所使用的编程语言都提供了对它的实现,当然了,各家的实现也是有一些差异的,有的支持的功能多一点,有的支持的少一点。

因为正则表达式是实践中使用广泛的工具,所以脱离语言的学习我认为是不靠谱的。

正则表达式的函数介绍

正则表达式主要API关系图

Python的正则表达式怎么实现

这个图是我个人总结的,我觉得基本上把这里的函数的关系弄清楚了,它们的作用是:

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

match 从文本的开头匹配正则表达式,返回匹配的对象,没有就返回 None

search 在整个文本中匹配正则表达式,返回第一个匹配的对象,没有就返回 None。

sub 利用正则表达式进行文本替换(正则表达式的功能:搜索和替换)

findall 从整个文本中匹配正则表达式,以列表的形式返回所有匹配的结果。

finditer 从整个文本中匹配正则表达式,以迭代器的形式返回所有匹配的结果。

split 利用正则表达式切分文本

这里可以看出,·re· 下面有很多立即可以使用的函数,然后 re.compile 下面有很多同名的函数。直接在 ·re· 模块下的是官方提供方便使用的函数,通过 re.compile 来使用是最正统的方式。所以,接下来的内容,我基本上智慧使用 re.compile 及其下的方法来实现。

re.compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式 (Pattern)对象,供 match() 和 search() 以及其它函数使用。

语法:

re.compile(pattern[, flags])

登录后复制

pattern: 一个字符串形式的正则表达式

flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

re.I 忽略大小写

re.L 多行模式

re.S 即为 ‘.’ 并且包括换行符在内的任意字符(’.’ 不包括换行符)

re.U 表示特殊字符集 w, W, , B, d, D, s, S 依赖 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和 ‘#’ 后面的注释

示例:查找字符串中的所有数字

import res = 'runoob 123 google 456'result1 = re.findall(r'd+', s)pattern = re.compile(r'd+') # 查找数字result2 = pattern.findall(s)result3 = pattern.findall(s, 0, 20)print(result1)print(result2)print(result3)"""output:[‘123', ‘456'][‘123', ‘456'][‘123', ‘45']"""

登录后复制

学习模板

接下来我们要逐渐学习正则表达的内容,这些内容是非常有趣的!Interesting and Excited!

这里给出一个接下来会一直使用的示例模板,这个模板是这篇博客最重要的东西了,之后的内容都会基于它进行扩展。所以,请好好理解它。

import re# 需要进行搜索或者匹配的文本text = """I love you yesterday and today."""# 正则表达式regexp = r'love'# 编译(对正则表达式进行编译获取 Pattern Object)pattern = re.compile(regexp)# 搜索m = pattern.search(text)if m:    print("匹配对象: ", m)    print("匹配的字符串: ", m.group())    print("匹配的开始位置: ", m.start())    print("匹配的结束位置: ", m.end())    print("匹配位置的元组: ", m.span())else:    print("No match!")# 替换new_text = pattern.sub("hate", text)print(new_text)

登录后复制

Python的正则表达式怎么实现

注意: 正则表达式 regexp 在开始前会使用 r 前缀,这样做的目的是为了避免在正则表达式中大量使用转义字符,破坏了整体的可读性。

Python 的正则表达式包含了很多非常易用的方法,但是这里我并不会过多介绍它们。我们会一直使用上面这种模式,因为那些易用的方法只是对它的一种封装,学习使用这种基本的方式自然就会其它的了。

匹配对象 可以获取有关正则表达式的信息,它最重要的方法和属性是:

方法/属性目的group()返回正则匹配的字符串start()返回匹配的开始位置end()返回匹配的结束位置span()返回包含匹配 (start, end) 位置的元组

以上就是Python的正则表达式怎么实现的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年2月26日 18:29:27
下一篇 2025年2月23日 09:26:57

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

相关推荐

  • Python中if语句的基本格式是什么

    在 python 中,if 语句用于根据条件执行不同的代码块。它的基本格式如下: if condition:    # 如果 condition 为 True,执行这里的代码块 登录后复制 其中,condition 是一个表达式,通常涉及变…

    编程技术 2025年2月26日
    200
  • Python中json库的操作方法有哪些

    概念 json是一种通用的数据类型 一般情况下接口返回的数据类型都是json 长得像字典,形式也是k-v{ } 其实json是字符串 字符串不能用key、value来取值,所以要先转换为字典才可以 立即学习“Python免费学习笔记(深入)…

    编程技术 2025年2月26日
    200
  • 怎么使用python实现一个简单的贪吃蛇游戏

    pygame 写的“贪吃蛇”小游戏: “贪吃蛇”这个小游戏在编程学习中的常客,因为: 简单,最基本的游戏元素只需要蛇和食物两个就可以进行了。(打飞机还需要三个元素呢,想想分别是什么?)方向的话只要上下左右4个固定方向就可以了。有基本的数据结…

    2025年2月26日
    200
  • Python怎么利用手势识别实现贪吃蛇游戏

    项目介绍 1、游戏的操作方式 贪吃蛇游戏人尽皆知,计算机视觉鲜为人知,计算机视觉+贪吃蛇游戏会带给人们更多的参与感以及新鲜度,本次这个项目就是主要使用手势识别来完成贪吃蛇这个简单的游戏。在这个游戏中,电脑通过摄像头捕捉到我们的手势并判别是否…

    2025年2月26日
    200
  • python OpenCV图像金字塔实例分析

    1.图像金字塔理论基础 图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条…

    2025年2月26日 编程技术
    200
  • 怎么使用python构建一个自己的聊天室

    一、网络编程基础概念 ip地址:网络中每个设备的唯一标识符,用于在网络中定位设备。 端口:标识设备上的不同网络应用,一个端口对应一个特定的服务或应用。 协议:数据通信的规则,如TCP和UDP。 二、Socket编程简介及原理 Socket是…

    编程技术 2025年2月26日
    200
  • python beautifulsoup4模块怎么用

    一、BeautifulSoup4 基础知识补充 beautifulsoup4 是一款 python 解析库,主要用于解析 html 和 xml,在爬虫知识体系中解析 html 会比较多一些, 该库安装命令如下: pip install be…

    2025年2月26日
    200
  • Python和JavaScript间交换数据的方法

    telepath是一个Django库,用于在Python和JavaScript之间交换数据,使您可以构建具有丰富客户端接口的应用程序,同时将业务逻辑保留在服务器端代码中。 它有什么作用? 它提供了一种将包括Python对象在内的结构化数据打…

    编程技术 2025年2月26日
    200
  • Python之正则表达式常用语法实例分析

    正则表达式概述 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 python 自1.5版本起增加了re 模块,它提供 perl 风格的正则表达式模式。 re 模块使 python 语言拥有全部的正则表达式…

    2025年2月26日 编程技术
    200
  • Python中实现单例模式的常见方式有哪些

    Python 中实现单例模式的几种常见方式 元类(Metaclass): class SingletonType(type):    “””    单例元类。用于将普通类转换为单例类。    “””    _instances = {}  …

    编程技术 2025年2月26日
    200

发表回复

登录后才能评论