python - 如何一次存储和删除正则表达式模式?

标签 python regex python-3.x regex-group regex-greedy

<分区>

我想知道是否可以在不检查正则表达式模式两次的情况下执行此操作。

我正在使用 python 3

pp = re.search(r'(.)(.+)\1(.+)', word)
word = re.sub(r'(.)(.+)\1(.+)', '', word)
salv = pp.groups()
word + = salv[0] + salv[0] + inverse(salv[1]) + salv[2]

我首先查找匹配项,然后删除匹配项,但我正在查找相同的正则表达式模式两次。我觉得可以用其他方式完成。

所以我想做的是:

匹配一个模式,删除该模式,然后以不同的方式连接我匹配的内容。

最佳答案

您可以使用 re.sub方法以函数作为其 repl 参数的值。

import re
word = 'mmabacbc'
print(re.sub(r'(.)(.+)\1(.+)', lambda m: m.group(1) * 2 + m.group(2).swapcase() + m.group(3), word))

输出:

mmaaBcbc

使用 Rextester 在线测试.

关于python - 如何一次存储和删除正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212334/

相关文章:

python - 带有 python : xmpp. 协议(protocol)的 xmpp.InvalidFrom : (u'invalid-from', '' )

python - ValueError 混合苹果和橙子 : my. model() < False - Odoo v8

python - 这个语法在Python中是什么意思? def json_file_to_dict(_file : str) -> dict:?

python - 如何从python中的列表索引获取列表的子集

python - 在仅容器开发环境之外运行 django `makemigrations` 的正确做法是什么

python - 如何从字符串打印 Python 中的日期和时间?

regex - gradle war重命名文件常规exp不起作用

javascript - XRegExp: "Unmatched ' )'"然而一切似乎都是平衡的

Python 的“Look-And-Say” 正则表达式

python-3.x - Tensorflow 无效形状 (InvalidArgumentError)