3

なぜ見つからないのかわかりませんが'\'、pythonの特殊文字を置き換えたかったのです。

文字列内に文字列があり'\'ますが、解決策を見つけて「-」に置き換える自信があります。これは、交換しようとしているときに起こっていることです。

>>> x = 'hello\world'
>>> x
'hello\\world'
>>> x.replace('\', '-')
  File "<stdin>", line 1
    x.replace('\', '-')
SyntaxError: EOL while scanning string literal

編集: Eclipse IDLEでこれを試してください

x = 'hello\world'
print x
x.replace('\\', '-')
print x

出力:

hello\world
hello\world
4

4 に答える 4

10

別のバックスラッシュでエスケープする必要があります。

 x.replace('\\', '-')

バックスラッシュは、改行などの非印刷文字を文字列に導入するために使用されるという点で特別です。

'また、引用符で囲まれた文字列に文字を追加する方法でもあります'。これは、Python があなたがやろうとしていると考えていることです。\'文字列を終了させるのではなく、文字列内のリテラル引用符として認識および解釈します'EOL次に、文字列の末尾に到達し、文字列の末尾の前に (「行末」)を見つけます。

実際のバックスラッシュを導入するには、それを 2 倍にする必要があります。ここに初期文字列の表現を出力するときに、Python 自体がこれを行ったことがわかります。

>>> x
'hello\\world'

二重のバックスラッシュに注意してください。

最初に文字列を指定するときは、バックスラッシュを 2 つ使用する必要があります。それが必要ない理由は\w、特殊文字ではないため、リテラルのバックスラッシュと . として解釈されますw'Hello\now'改行を含む文字列があると言っていたら。

ras in を先頭に追加して、文字列を「生の」文字列としてマークすることもできますr'hello\world'。これは、文字列が特殊文字の置換に適格でないことを示します。

于 2013-08-05T06:17:56.620 に答える
2

ドキュメントによると:

バックスラッシュ (\) 文字は、改行、バックスラッシュ自体、または引用符文字など、特別な意味を持つ文字をエスケープするために使用されます。

バックスラッシュを別のバックスラッシュでエスケープする必要があります。

x.replace('\\', '-')
于 2013-08-05T06:18:07.323 に答える
1

これ\'は特殊文字として解釈されます。エスケープします:

x.replace('\\', '-')
于 2013-08-05T06:17:50.123 に答える
0

Python では、文字列 x = 'hello\world' は x = "hello\world" に置き換えられます

だから達成するためにあなたは書く必要があります

x.replace('\\','-')
于 2013-08-05T06:23:35.327 に答える