当前位置: 首页 > 面试题库 >

如何使用python正则表达式替换使用捕获的组?

易昌翰
2023-03-14
问题内容

假设我要更改the blue dog and blue cat wore blue hatsthe gray dog and gray cat wore blue hats

通过sed我可以做到这一点,如下所示:

$ echo 'the blue dog and blue cat wore blue hats' | sed 's/blue \(dog\|cat\)/gray \1/g'

如何在Python中进行类似的替换?我试过了:

>>> import re
>>> s = "the blue dog and blue cat wore blue hats"
>>> p = re.compile(r"blue (dog|cat)")
>>> p.sub('gray \1',s)
'the gray \x01 and gray \x01 wore blue hats'

问题答案:

您需要转义反斜杠:

p.sub('gray \\1', s)

或者,您可以像使用正则表达式一样使用原始字符串

p.sub(r'gray \1', s)


 类似资料:
  • Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提

  • 问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。

  • 问题内容: 有什么方法可以用捕获组的已修改内容替换正则表达式? 例: 我想用$ 1乘以3代替所有出现的情况。 编辑: 看起来好像出了点问题:( 如果我用 引发IllegalStateException:找不到匹配项 但 工作正常,但我不能更改$ 1 :( 问题答案: 要获得第一场比赛,请使用。之后,你可以用来引用此第一个匹配项,并将所有匹配项替换为第一个匹配值乘以3。 如果你想将每个匹配项替换为该

  • 我想以firstName和lastname的形式获得输出。怎么用正则表达式做,有什么想法吗?

  • 问题内容: 我已将一些定价数据读入pandas数据框中,其值显示为: 我想将其简化为数字值。我知道我可以遍历并应用正则表达式 到每个字段,然后将结果列表重新组合在一起,但是有没有一种循环的方式? 谢谢 问题答案: 您可以使用删除所有非数字: regex101演示

  • 问题内容: 我想有一个正则表达式模式来匹配表情符号“ :)”,“ :(”。此外,它还应捕获重复的表情符号,例如“ :) :)”,“ :) :(”,但过滤掉无效的语法,例如“ :( (“。 我有这个,但它匹配“ :((” 我可能在这里遗漏了一些明显的东西,希望为这个看似简单的任务提供帮助。 问题答案: 我认为它终于“点击了”您所要询问的内容。看一下下面的内容: 您原始代码的问题是您的正则表达式是错误