gpt4 book ai didi

python - 有没有办法在不使用组的情况下引用 re.sub 中的整个匹配表达式?

转载 作者:太空狗 更新时间:2023-10-30 01:51:07 25 4
gpt4 key购买 nike

假设我想在所有出现的特定表达式前加上一个字符,例如 \

sed 中,它看起来像这样。

 echo '__^^^%%%__FooBar' | sed 's/[_^%]/\\&/g'

请注意,&字符用于表示原始匹配表达式。

我已经查看了 regex docsregex howto ,但我没有看到可用于替换匹配表达式的 & 字符的等价物。

我发现的唯一解决方法是使用一组额外的 () 对表达式进行分组,然后引用该组,如下所示。

import re


line = "__^^^%%%__FooBar"
print re.sub("([_%^$])", r"\\\1", line)

有没有一种干净的方法可以在不创建额外组的情况下引用整个匹配的表达式?

最佳答案

来自docs :

The backreference \g<0> substitutes in the entire substring matched by the RE.

例子:

>>> print re.sub("[_%^$]", r"\\\g<0>", line)
\_\_\^\^\^\%\%\%\_\_FooBar

关于python - 有没有办法在不使用组的情况下引用 re.sub 中的整个匹配表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com