Re.sub不适合我

apo*_*002 9 python regex

我试图re.sub用例如替换用值指定的模式

for lines in f:
    pattern='\${2}'+key[0]+'\${2}'
    re.search(pattern,lines)
Run Code Online (Sandbox Code Playgroud)

这将返回找到模式的行.例如,这是获得的测试返回之一

这是一个$$测试$$

我遇到的问题是当我做以下事情时

re.sub(pattern,key[1],lines)
Run Code Online (Sandbox Code Playgroud)

什么都没发生.我错过了什么?有关更多信息key[0]=test,key[1]=replace 我正在尝试做的是每当遇到"$$ test $$"时,它将用"替换"替换它.我没有问题找到"$$ test $$"但由于某种原因re.sub没有取代它.

kin*_*all 14

分配的结果re.sub返回到一个变量,对不对?例如

lines = re.sub(pattern, key[1], lines)
Run Code Online (Sandbox Code Playgroud)

它是一个字符串,因此无法更改(字符串在Python中是不可变的),因此会创建一个新字符串并返回给您.如果您不将其分配回名称,您将失去它.