0

最近、私は次の観察を行いました。

>>> x= "\'"
>>> x
"'"
>>> y="'"
>>> y
"'"
>>> print x
'
>>> print y
'

なぜそうなのか、誰か説明してください。私はpython 2.7.xを使用しています。エスケープシーケンスについてよく知っています。

私は次のことをしたい: 一重引用符を含む文字列があり、それをデータベースに入力する必要があるため、一重引用符 (') のインスタンスをバックスラッシュとそれに続く一重引用符 (\') に置き換える必要があります。 . どうすればこれを達成できますか。

4

1 に答える 1

6

のペア内では、文字""をエスケープする必要はありません。'もちろんできますが、これまで見てきたように、それは不要であり、何の効果もありません。

'a inside a pair of''または a "inside a pair ofを記述する場合は、エスケープする必要があり""ます。

x = '\''
y = "\""

編集 :

編集後に追加された質問の最後の部分について:

一重引用符を含む文字列があり、それをデータベースに入力する必要があるため、一重引用符 (') のインスタンスをバックスラッシュとそれに続く一重引用符 (\') に置き換える必要があります。どうすればこれを達成できますか

次のいずれかが機能します。特殊文字をエスケープする必要を回避するために生の文字列を使用していることに注意してください。

v = "\\'"
w = '\\\''
x = r'\''
y = r"\'"

print v, w, x, y
> \' \' \' \'
于 2012-05-24T01:40:38.457 に答える