如何在 Python 中正确使用 re.sub() 进行迭代

2024-01-18

我想制作一个创建脚注的 Python 脚本。这个想法是找到该排序的所有字符串"Some body text.{^}{Some footnote text.}"并将它们替换为"Some body text.^#", where "^#"是正确的脚注编号。 (我的脚本的另一个部分涉及实际打印文件底部的脚注。)我当前使用的代码是:

pattern = r"\{\^\}\{(.*?)\}"
i = 0
def create_footnote_numbers(match):
   global i
   i += 1
   return "<sup>"+str(i)+"</sup>"

new_body_text = re.sub(pattern, create_footnote_numbers, text)

这工作正常,但必须声明一个变量似乎很奇怪(i)之外create_footnote_numbers函数,然后必须在该函数内调用它。我以为里面会有东西re这将返回匹配的号码。


可以使用任何可调用的,因此您可以使用类来跟踪编号:

class FootnoteNumbers(object):
    def __init__(self, start=1):
        self.count = start - 1

    def __call__(self, match):
        self.count += 1
        return "<sup>{}</sup>".format(self.count)


new_body_text = re.sub(pattern, FootnoteNumbers(), text)

现在计数器状态包含在FootnoteNumbers()实例,以及self.count每次启动时都会重新设置re.sub() run.

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

如何在 Python 中正确使用 re.sub() 进行迭代 的相关文章

  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • Perl 正则表达式图灵完备吗?

    我见过 Ruby 和 Perl 程序员做了一些事情复杂的代码挑战 https codegolf stackexchange com questions 3596 regex validating regex完全用正则表达式 这前瞻和后瞻 h
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • Django-tables2 列总计

    我正在尝试使用此总结列中的所有值文档 https github com bradleyayers django tables2 blob master docs pages column headers and footers rst 但页
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 如何判断当前框架是否是父框架?

    我正在一个框架环境中工作 并试图判断执行某些 javascript 代码的框架是否是顶部框架 包含其余部分的框架 到目前为止我一直在尝试检查它 window parent null 但它总是返回 false 就像这个简单的例子一样 h1 O
  • setInterval 中的 JavaScript 函数

    我有以下代码 var foo 5 var los function alert foo setInterval los 1000 哪个工作正常 如果我将其更改为 var los function alert foo setInterval
  • 导出到 Excel JSF 和 PrimeFaces

    使用 JDK 1 6 JSF 2 1 PrimeFaces 2 2 1 POI 3 2 和 Apache Tomcat 7 我正在尝试设置一个 servlet 以允许根据用户选择下载 Excel 文件 Excel 文档是在运行时创建的 没有
  • 绕过pip卸载的确认提示

    我正在尝试卸载超级用户环境中的所有 django 软件包 以确保所有 webapp 依赖项都安装到我的 virtualenv 中 sudo su sudo pip freeze grep E django xargs pip q unins
  • 在 Unix 上的 Perforce 中,如何添加符号链接目录?

    我在 Unix 中创建了一个符号链接目录 我想将其添加到 perforce 这个问题与 Unix 上的符号链接有关 Windows 符号链接的行为与 Unix 非常不同 http en wikipedia org wiki Symbolic
  • 有没有办法改变弹性标题的字体大小?

    有没有办法改变弹性标题的字体大小 我使用了 set caption 命令 效果很好 但我不喜欢从 Markdown 编织到 HTML 时的字体大小 None
  • 如何在 PyQt 中隐藏布局?

    我的代码包含一个垂直框布局 它是左侧垂直框布局和右侧垂直框布局的组合 我想知道是否有一种方法可以在发出某个信号时隐藏左侧布局及其所有小部件 您可以作弊并使用框架而不是布局 它的工作方式完全相同 除了您必须在框架上设置布局才能使其正常工作 然
  • 在 bash 中,如何强制刷新打印到终端的不完整行

    我正在编写一个脚本 它执行如下操作 echo n Doing stuff wait for it do stuff 0 echo SUCCESS echo FAILURE 请原谅糟糕的 bash 技能 无论如何 问题是该行的第一部分直到do
  • python 编译所需的 vcvarsall.bat 从 Visual Studio 2015 (v 14) 中缺失

    我正在尝试在 Windows 10 下的 python 3 5 中安装 numpy 并安装了 Visual Studio 2015 Ultimate 简短版本 文件vcvarsall batvs14 文件夹中丢失C Program File
  • 将 DataMember 添加到 DataContract 的不同命名空间

    随着XmlSerializer我可以让我的成员位于与父类型不同的命名空间中 我可以做同样的事情吗DataContractSerializer 我想要以下 XML
  • 这是托管使用 Nodejs、Angularjs、Mongodb 开发的平均应用程序的最佳方式(方法)

    我是这个 Web 开发的新手 我需要知道托管我开发的应用程序的不同方式 这是一个带有链接的粗略清单 对于 MEAN Stack 您可以从Node js安装 https nodejs org en 它为其余部分提供命令框架 当您从头开始时 我
  • numpy 为何这么快?

    我试图理解如何numpy可以这么快 基于我与优化的 C C 代码的令人震惊的比较 它距离再现 numpy 的速度还很远 考虑以下示例 给定一个二维数组shape N N and dtype float32 它表示 N 个维度的 N 个向量的
  • MySQL 性能:多表与单表和分区上的索引

    我想知道什么在性能上更高效 更快 在一张大表上有一个索引 还是在多个没有索引的小表上有索引 由于这是一个非常抽象的问题 让我把它变得更实际 我有一张表 其中包含有关用户的统计信息 20 000 个用户 总共约 3000 万行 该表大约有 1
  • Hazelcast 专用节点

    在专用服务器上运行 Hazelcast 节点的最简单方法是什么 我们有一个使用 Hazelcast 分布式地图的 Web 应用程序 目前 Hazelcast 节点配置为在 Servlet 容器节点中运行 随着规模的扩大 我们希望添加专用硬件
  • AngularJS $timeout 函数未在我的 Jasmine 规范中执行

    我正在尝试使用 Karma 与 Jasmine 测试我的 AngularJS 控制器 但一个 timeout这在现实生活中运行良好 但却使我的测试崩溃 控制器 var Ctrl function scope timeout scope do
  • 在网站上查找一个单词并获取其页面链接

    我想抓取一些网站 看看那里是否存在 katalog 一词 如果是 我想检索该单词所在的所有选项卡 子页面的链接 可以这样做吗 我尝试按照本教程进行操作 但最终得到的 wordlist csv 是空的 即使网站上确实存在单词目录 https
  • 如何将图像裁剪为圆形且圆形内有网格

    In my Social media app i want image Cropping Functionality that Crop image in Circle shape plus have Grid inside Circle
  • 如何在 Rails 中以简单形式添加开关切换按钮

    我正在使用 Rails 4 和 Simple Form with Bootstrap 我希望我的复选框不会那样 但类似的东西 我有CSS
  • 使用 #include 和包含防护在单独文件中进行 C++ 继承

    我是 Stack Overflow 的新手 正在自学 C 但我仍然是一个初学者 在完成了我正在使用的书中的大部分内容 可能被认为是过时的和 或不是一本好书 后 我决定通过自己尝试来重新强化一些概念 仅在需要时参考这本书 但我似乎被卡住了 我
  • 如何在 Python 中正确使用 re.sub() 进行迭代

    我想制作一个创建脚注的 Python 脚本 这个想法是找到该排序的所有字符串 Some body text Some footnote text 并将它们替换为 Some body text where 是正确的脚注编号 我的脚本的另一个部