我在这里做错什么了?

import re
x = "The sky is red"
r = re.compile ("red")
y = r.sub(x, "blue")
print x  # Prints "The sky is red"
print y  # Prints "blue"

我怎样才能让它印上“天空是蓝色的”?

最佳答案

代码的问题在于re模块中有两个子函数。一个是通用的,还有一个绑定到正则表达式对象。您的代码没有遵循任何一个:
这两种方法是:
re.sub(pattern, repl, string[, count])(docs here)
像这样使用:

>>> y = re.sub(r, 'blue', x)
>>> y
'The sky is blue'

当你在手之前编译它时,你可以使用:
RegexObject.sub(repl, string[, count=0])(docs here)
像这样使用:
>>> z = r.sub('blue', x)
>>> z
'The sky is blue'

关于python - 我在Python中执行字符串替换操作有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/786881/

10-12 18:48