1
我有一個字符串This is a Test
和傳遞的參數s
。 我該如何逃避第一個字符串的所有s字符?如何轉義字符串的某些字符?
應該導致Thi\s i\s a Te\sT
我想它是這樣的:
rstr = rstr.replace(esc, r"\\" + esc)
但它會導致\\
每個s
我有一個字符串This is a Test
和傳遞的參數s
。 我該如何逃避第一個字符串的所有s字符?如何轉義字符串的某些字符?
應該導致Thi\s i\s a Te\sT
我想它是這樣的:
rstr = rstr.replace(esc, r"\\" + esc)
但它會導致\\
每個s
r'\\'
產生之前字面雙反斜線:
>>> r'\\'
'\\\\'
不要在這裏使用原始字符串,只需使用'\\'
:
>>> 'This is a Test'.replace('s', '\\s')
'Thi\\s i\\s a Te\\st'
不要混淆價值的Python表示。爲了方便調試和往返,Python解釋器使用repr()
函數來回顯結果。
的字符串repr()
使用Python的文字符號,包括逃避任何反斜線:
>>> r'\s'
'\\s'
>>> len(r'\s')
2
>>> print r'\s'
\s
實際值只包含一個反斜槓,但由於反斜槓可以開始擁有特殊意義的字符,如\n
(換行符)或\x00
(空字節),它們表示已轉義,因此您可以直接將該值粘貼回解釋器。
實際上,使用'「\\」'而不是'r「\\」'。將它作爲原始字符串意味着\\確實變成了\\,但您仍然無法用一個反斜槓結束一個字符串。 – RemcoGerlich