我在這裏做錯了什麼?我試圖在Python中進行字符串替換操作有什麼問題?
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"
如何讓它打印「天空是藍色的」?
我在這裏做錯了什麼?我試圖在Python中進行字符串替換操作有什麼問題?
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.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'
你讀¶
r.sub(x, "blue")
# should be
r.sub("blue", x)
你有API錯誤
http://docs.python.org/library/re.html#re.sub
pattern.sub(REPL,字符串[,計數])您撥打sub
錯誤方法的理由應該是:
import re
x = "The sky is red"
r = re.compile ("red")
y = r.sub("blue", x)
print x # Prints "The sky is red"
print y # Prints "The sky is blue"
順便說一句,對於這樣一個簡單的例子,re
模塊是矯枉過正:
x= "The sky is red"
y= x.replace("red", "blue")
print y
編輯我的答案的方法。 – Unknown 2009-04-24 18:14:20