在多次调用的函数内编译正则表达式

2023-12-19

如果您在函数内编译正则表达式,并且该函数被多次调用,Python 是否每次都重新编译正则表达式,或者 Python 是否缓存已编译的正则表达式(假设正则表达式没有更改)?

例如:

def contains_text_of_interest(line):
    r = re.compile(r"foo\dbar\d")  
    return r.match(line)

def parse_file(fname):
    for line in open(fname):
        if contains_text_of_interest(line):
           # Do something interesting

实际上,如果你查看 re 模块中的代码,re.compile 函数就像所有其他函数一样使用缓存,因此一遍又一遍地编译相同的正则表达式非常非常便宜(字典查找)。换句话说,将代码编写得最容易理解或最容易维护或最有表现力,并且不用担心编译正则表达式的开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在多次调用的函数内编译正则表达式 的相关文章

  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 如何使用 XPath 正则表达式匹配 URL

    需要 XPath 方面的帮助 我有这样一个XML
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • Java中如何从域名获取IP地址?

    我正在编写一个需要 IP 地址的应用程序 我有一个域名 我想知道如何从中获取 IP 地址 例如 www girionjava com 如何通过Java编程获取该网站的IP地址 谢谢 InetAddress giriAddress java
  • 箭头键输入代码在 tkinter 中不起作用

    以下是我的简短脚本 当按住这些箭头键时 它的意思是从右向左和向上打印 但我不知道为什么它不起作用 import Tkinter as tk right False left False up False def keyPressed eve
  • php-ga:如何识别自然流量?

    我正在做所有的 Google Analytics 服务器端工作 但 GA 仅跟踪直接或推荐 而且我不知道如何跟踪有机 这是一段可以直接获取或引用的代码 Campaign is used for the referrals If not in
  • 编译 create-react-app 时出现构建错误

    我是 Reactjs 的新手 正在开始学习它 我一直在尝试启动一个基本的 hello world 程序 但它在编译级别失败 使用 create react app hello world 创建了一个启动 hello word 程序 它给了我
  • 播放 YouTube 视频时出现错误“网络 [400] 出现问题”

    我正在使用 Android You tube API 播放 you Tube 视频 某些 URL 工作正常 但在某些 URL 中 我在屏幕上发现错误消息 显示 网络出现问题 400 点击重试 互联网已连接 请帮助我 提前致谢 This li
  • 如何在 Swift 中将十进制数转换为二进制数?

    如何在 Swift 中将 Int 转换为 UInt8 例子 我想将数字 22 转换为 0b00010110 var decimal 22 var binary UInt8 What should I write here 您可以将十进制值转
  • 我们如何从远程资源管理器中删除 ssh 目标

    远程资源管理器侧边栏有一个明显的图标 用于添加新目标 但我找不到用于删除或编辑目标的选项 就我而言 服务器的 IP 经常更改 因此它们只是继续在侧边栏中添加 现在有清理方法 目标是否存储在我可以手动编辑的文件中 您可以通过编辑删除或编辑它
  • 合并不同维度 r 的列表元素[重复]

    这个问题在这里已经有答案了 我有一个 df df data frame year c rep 2018 4 rep 2017 3 Area c 1 4 1 3 P 1 7 N 1 7 我想按年份将其拆分 然后再次将所有内容合并在一起 以便我
  • 绘制圆角矩形时出现透明度问题

    我正在尝试使用我在教程中找到的一些代码绘制带圆角的矩形 我稍作修改 Rounded rectangle algorithm copied from http ju outofmemory cn entry 18060 def round c
  • 使用 urllib2 时出现“TypeError: a float is required”

    我正在关注推特 API 文档 https dev twitter com docs auth application only auth发出仅限应用程序的请求 执行时发生错误第2步 获取不记名令牌 我不熟悉回溯中这些模块的详细信息 有人可以
  • 如果函数没有显式使用“ret”,为什么没有返回值

    我有以下程序 SECTION text main mov ebx 10 mov ecx 50 repeat inc ebx loop repeat mov eax ebx ret 当该程序运行时 它按预期返回 60 然而 如果你放弃了最后的
  • Cloudant 和 CouchOne 之间的区别?

    我想知道 Cloudant 和 CouchOne 之间有什么区别 好问题 我的快速回答 CouchOne 由 CouchDB Apache 项目的创始人 Damien Katz 领导 CouchOne 现在专注于缩小 couchdb 的规模
  • 如何提高填充大量树视图的性能?

    首先 我正在以问答方式回答我自己的问题 所以我不一定需要任何人来回答这个问题 这是我学到的东西 很多人都可以利用它 我有一个由许多不同节点组成的树视图 每个节点的后面都有一个对象Data属性 对象引用一个对象主列表中的不同层次结构级别 该列
  • 无法使用 Knockout JS 从 jquery 自动完成中选择/绑定项目

    当我终于能够从列表中添加和删除项目之后 看小提琴 http jsfiddle net spstieng THJE3 46 我继续实现 jQuery 自动完成 看完之后卢恩的例子 https stackoverflow com questio
  • 如何在jQuery中缓存$.post-request的结果?

    我有一个小的 jQuery 脚本 它通过查看 ID 来获取信息 防止多次请求相同数据的最佳方法是什么 例如 在 jQuery 中缓存的最佳实践是什么 我尝试过使用 post and ajax选项 cache 设置为 true 但请求发送多次
  • 使用 jQuery 的 .each() 函数将函数附加到多个幻灯片容器

    我在单页网站上有很多小的 jQuery Cycle 幻灯片 div 容器 例如 div class foo bar data value varies on each container img src directory img 0 jp
  • Unity3D - 如何制作纹理改变静音按钮/切换?

    我正在尝试在我的 Android 游戏菜单中制作一个静音按钮 因此当我按下该按钮时 纹理会从正在播放的扬声器符号更改为静音扬声器符号 我已经在 Photoshop 中制作了 因此 当音频播放时 它将有一个 扬声器 符号 但是当我按下它时 它
  • PHP for iPad 或其他解决方案

    这是一个棘手的问题 我正在为 iPad 开发一个网络应用程序 该应用程序将作为信息亭安装 该应用程序本质上是一个测验 不需要将数据存储在数据库中 但需要处理从一页到另一页的数据 从问题页到结果页 最初的解决方案是简单的 PHP 我现在获悉
  • 使用http状态202进行异步操作

    我正在为接受用户贡献数据的服务编写 REST API 我希望所有操作保持完全异步 这包括 PUT POST DELETE 甚至 GET 请求 我的想法是接收请求 对其进行足够的处理以确保它是有效的请求 然后传递 HTTP 202 接受的响应
  • 在多次调用的函数内编译正则表达式

    如果您在函数内编译正则表达式 并且该函数被多次调用 Python 是否每次都重新编译正则表达式 或者 Python 是否缓存已编译的正则表达式 假设正则表达式没有更改 例如 def contains text of interest lin