假设我想用\
这样的字符在某个特定表达式的所有出现处前面加上前缀。你知道吗
在sed
中,它看起来是这样的。你知道吗
echo '__^^^%%%__FooBar' | sed 's/[_^%]/\\&/g'
请注意,&
字符用于表示原始匹配表达式。你知道吗
我已经查看了regex docs和regex howto,但是我没有看到一个等价于&
字符的字符可以用来替换匹配的表达式。你知道吗
我发现的唯一解决方法是使用额外的一组()
对表达式进行分组,然后引用该组,如下所示。你知道吗
import re
line = "__^^^%%%__FooBar"
print re.sub("([_%^$])", r"\\\1", line)
有没有一种干净的方法来引用整个匹配的表达式而不创建额外的组?
从docs:
示例:
也可以使用Positive lookahead得到结果。你知道吗
相关问题 更多 >
编程相关推荐