返回顶部
首页 > 资讯 > 后端开发 > Python >Python正则re.compile真的必需吗
  • 833
分享到

Python正则re.compile真的必需吗

2024-04-02 19:04:59 833人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、re.compile()2、re.search()3、re.findall()背景:我在爬虫处理某个文本时,用到了re.findall(),而不是re.compile。远在新

背景:我在爬虫处理某个文本时,用到了re.findall(),而不是re.compile。远在新加坡的同事提出了质疑,认为以我的水平,不应该写出这样影响性能的代码,让我优化一下。我提出了反驳:既然使用了python,就不应该太过考虑性能的问题,如果要考虑性能就使用C语言,而不是Python.他接着说:正是因为python性能不够,所以更应该考虑代码的优化,能做好就应该做到最好.最后,我没有回话,当然我也没有进行所谓的优化,以下我会给出我自己的观点.

re.compile()、re.findall()、re.search() 的作用与区别

1、re.compile()

Python里的re是支持正则表达式的模块,所谓的正则表达式就是匹配文本里符合条件的语句. re.compile()是根据包含正则表达式的字符串创建模式对象,以提高匹配效率.例如:

def test():
    regex = r'(\d+) years old'
    content = 'Alex is a 7 years old boy.'
    reg = re.compile(regex)
    result = re.search(reg, content).group()
    print(result)
result = 7

2、re.search()

re.search()是在字符串开启查找模式,如其名:search.例如:

def test():
    content = 'Alex is a 7 years old boy.'
    result = re.search(r'(\d+) years old', content).group()
    print(result)
result = 7

3、re.findall()

re.findall()是返回一个列表,列表里包含了所有符合条件的结果,例如:

def test():
    content = 'Alex is a 7 years old boy.Bob is a 12 years old boy...'
    result = re.findall(r'(\d+) years old', content)
    print(result)
result = ['7', '12']

我们分歧在他认为我应该先用 re.complile 编译好正则之后,再匹配,正如我在re.compile举得例子. 你会说他说的没错啊,作者不应该顺从同事这个合理的要求,不改就算了还要在这里发文BB.我想说的是 抛开剂量谈毒性,都是耍流氓。对于数据来说抛开量级谈性能差异,都是耍流氓. 如果要处理的 文本是百万、千万、亿这个级别,我会做优化,但是对于个别刚上万的数据来说,我觉得没必要,业务流程真的不缺那0.0X秒,多写一行re.compile的时间远大于提示的时间了. 做好代码的优化很重要,特别是面对大量数据的时候,但是我们要想清楚,有时候并不是靠那几行re.compile就能提高多大的性能,精简流程,合理的设计模式才是重点. 工作中还是要做好和同事的沟通,不要和我一样,不然迟早会被别人唾弃.

在这里插入图片描述

在这里插入图片描述

根据下面评论的提示re.compile()那一行应该放在迭代外面的代码块里,相比图中的时间速度会有所提升.

--结束END--

本文标题: Python正则re.compile真的必需吗

本文链接: https://lsjlt.com/news/118954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python正则re.compile真的必需吗
    目录1、re.compile()2、re.search()3、re.findall()背景:我在爬虫处理某个文本时,用到了re.findall(),而不是re.compile。远在新...
    99+
    2024-04-02
  • Python正则re.compile实例分析
    今天小编给大家分享一下Python正则re.compile实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、re.c...
    99+
    2023-07-02
  • Python正则表达式re.compile()和re.findall()详解
    目录前言网页中的代码:提取的方法:re.findall中参数re.S的意义:参考:总结前言 在使用爬虫提取网页中的部分信息时,采用到了re.compile()与re.findall(...
    99+
    2024-04-02
  • Python正则表达式re.compile()和re.findall()怎么使用
    这篇文章主要介绍了Python正则表达式re.compile()和re.findall()怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python正则表达式re.compile()和re.findal...
    99+
    2023-07-02
  • 你真的需要掌握Python、Unix、Shell和npm吗?
    在当今互联网时代,计算机技术得到了广泛的应用,作为一名程序员,我们需要掌握各种技术来提高自己的竞争力。在这些技术中,Python、Unix、Shell和npm是非常重要的一部分。但是,你真的需要掌握这些技术吗? Python是一种高级编程语...
    99+
    2023-08-24
    unix shell npm
  • Python 文件 IDE 容器:你真的需要它吗?
    Python 是一种流行的编程语言,广泛用于数据科学、Web 开发、自动化脚本等领域。为了方便 Python 开发者编写、调试和运行 Python 代码,出现了许多 Python IDE 工具,如 PyCharm、VSCode 等。而近年...
    99+
    2023-08-25
    文件 ide 容器
  • Python中的正则
    regex_lst = [   ('字符组',),   ('非打印字符',),   ('特殊字符',),   ('定位符',),   ('限定符',),   ('re模块',),   ('分组命名',),   ('或匹配',),   ('...
    99+
    2023-01-30
    正则 Python
  • 你真的需要了解Bash吗?
    Bash是一种强大的命令行解释器,它是Linux和macOS操作系统上的默认Shell。尽管它是如此重要,但很多人并不了解Bash的实际用途。在本文中,我们将探讨Bash的重要性以及它如何帮助我们更好地管理和控制计算机系统。 Bash是什么...
    99+
    2023-08-15
    path bash http
  • HTML6真正需要的功能有哪些
    这篇文章将为大家详细讲解有关HTML6真正需要的功能有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML6 真正需要的功能好吧,我知道其实根本就不会有所谓的 HT...
    99+
    2024-04-02
  • Python 异步编程:你真的需要 path 框架吗?
    在 Python 中,异步编程已经成为越来越流行的编程方式。它可以让你在单个进程中处理大量并发连接,从而提高应用程序的性能和可伸缩性。在异步编程中,常见的框架包括 asyncio、Tornado 和 Twisted 等,而 path 是其...
    99+
    2023-11-10
    异步编程 框架 path
  • 不需要用到正则的Python文本解析库parse
    目录1. 真实案例2. parse 的结果3. 重复利用 pattern4. 类型转化5. 提取时去除空格6. 大小写敏感开关7. 匹配字符数8. 三个重要属性9. 自定义类型的转换...
    99+
    2024-04-02
  • 打包 ASP:你真的需要它吗?
    打包 ASP:你真的需要它吗? 随着互联网技术的发展,越来越多的网站开始采用ASP技术进行开发。在ASP开发中,打包是一个非常重要的环节。但是,在实际开发过程中,我们是否真的需要打包ASP呢?本文将对这个问题进行探讨。 首先,我们需要了解什...
    99+
    2023-10-27
    重定向 打包 面试
  • 你真正了解Python分布式Apache技术吗?
    Python分布式Apache技术是一种非常流行的技术,它可以用来处理大规模的数据集,同时也可以让我们更好地利用多核CPU和集群。在本文中,我们将介绍Python分布式Apache技术的基本概念和使用方法,并提供一些演示代码。 一、Pyth...
    99+
    2023-08-18
    分布式 apache 面试
  • 你真的需要Python、Git和Shell来管理存储吗?
    近年来,Python、Git和Shell三种技术在软件开发和数据管理领域中越来越受到关注。但是,你真的需要这三种技术来管理存储吗?本文将探讨这个问题,并提供一些演示代码来帮助你更好地了解这些技术。 首先,让我们看看Python。Python...
    99+
    2023-08-13
    git shell 存储
  • Python的正则规则举例分析
    这篇文章主要讲解了“Python的正则规则举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的正则规则举例分析”吧!问题复现我们都知道,Python有个正则规则\w,几乎所有...
    99+
    2023-06-02
  • 防攻击服务器真的有必要吗
    防攻击服务器真的有必要吗?在如今高度互联的数字时代,服务器扮演着不可忽视的关键角色。无论是企业、机构还是个人,都需要依赖服务器来存储、管理和传输敏感信息。然而,随着网络攻击越来越复杂和普遍,不得不思考一个重要问题:防攻击服务器真的有必要吗...
    99+
    2024-01-24
    防攻击服务器 防攻击服务器真的有必要吗 高防服务器 云服务器知识
  • python 正则匹配的re.sear
    一个简单的使用re.search 匹配一个字符串中的关键字[root@localhost ~]# vim ceshi.py#!/usr/bin/env python #coding:utf-8 import re err=("stderr:...
    99+
    2023-01-31
    正则 python sear
  • 不需要jre运行Java是真的吗
    本篇内容主要讲解“不需要jre运行Java是真的吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“不需要jre运行Java是真的吗”吧!今天我们要介绍的是spri...
    99+
    2024-04-02
  • DiscuzX1.5 真正的IIS7用无错URL静态化规则
    首先发下牢骚 ,康盛真的是不咋地,伪静态的设置什么的都不说明,以前7.0时,就不好设置伪静态,因为那时候我用的是win 主机,不支持.htaccess所以就要去找httpd.ini 的。现在的DX1.5提供的到是多了一点...
    99+
    2022-06-12
    IIS7 URL 静态化
  • 你真的需要学习 Java、NumPy 和 Django 吗?
    随着人工智能、大数据和云计算等技术的快速发展,编程语言也越来越多样化。目前,Java、NumPy 和 Django 是三个非常流行的编程语言和框架。但是,对于初学者来说,是否需要学习这些技术呢?让我们一起探讨一下。 Java Java 是...
    99+
    2023-09-27
    学习笔记 numy django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作