私はここで間違っていますか?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"
「ザ・スカイ・ブルー」を印刷するにはどうすればよいですか?
あなたのコードに問題が再モジュール内の2つのサブ機能があるということです。 1つは一般的なものであり、1つは正規表現オブジェクトに結びついています。あなたのコードは、次のいずれかされていません。
二つの方法があります:
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'
¶
http://docs.python.org/library/re.html#re.sub
pattern.sub(REPL、文字列[、カウント])間違ったAPIを読みます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
私は私の元の答えでこれを持っていましたが、OPは彼が実際にはもっと複雑なものを必要としていたと言いました。 +1とにかく。 –
私の答えを編集する方法。 – Unknown