【问题标题】:Back-referencing in PythonPython中的反向引用
【发布时间】:2020-02-11 05:47:08
【问题描述】:

我有一个大的 txt 文件,我想使用 Python 的 re 模块对其进行编辑。 一旦找到与我的正则表达式匹配的字符串,我想对它们进行一些更改并将它们写回 txt 文件。 例如,

原文

9 multiplied by 2 is

ans =

18

期望的输出

9 multiplied by 2 is 18.

在 Atom 中,我可以通过搜索 ([a-z]+)\s+ans\s=\s+(\d+) 并替换为 $1 $2 来做到这一点。 $ 分组不适用于 Python 中的 .sub()。关于如何实现这种类型的反向引用的任何提示?

编辑:我正在使用?P<tag> 进行反向引用,但如果我尝试进行多次替换using a dictionary,则会出现问题。

【问题讨论】:

    标签: python regex python-re


    【解决方案1】:

    re 模块中,您使用\1 而不是对组1 使用$1。这应该允许您保持正则表达式不变并以类似方式转换任何其他正则表达式。 re docs

    中概述了正确的功能和定义

    【讨论】:

    • 谢谢。如果我尝试进行多次替换 using a dictionary,这将不起作用。知道如何解决吗?
    • @aastas 如果您要使用字典(原始问题中未提及),您可以查看this 问题,这似乎与正在尝试做的事情相同。跨度>
    猜你喜欢
    • 2014-01-12
    • 2013-09-23
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2016-12-08
    相关资源
    最近更新 更多