Q
逃生繩和後
1
A
回答
1
有是每個只有一個反斜槓,但打印字符串的repr
時,他們被複制(逃脫) - 就像你使用一個字符串來構建一個正則表達式時需要複製它們。所以一切都很好。
例如:
>>> len("\\")
1
>>> len("\\n")
2
>>> len("\n")
1
>>> print "\\n"
\n
>>> print "\n"
>>>
0
反斜槓不重複。爲了實現這一目標,努力做到:
for element in key:
print element
你會看到這樣的輸出:
\#one\
\#two\
\#some\
\#tests\
\#are\
\#done
當您打印整個列表,蟒蛇用表示,其中字符串不打印爲他們,但它們被打印爲python表達式(注意引號「」,它們不在字符串中)
要實際編碼包含反斜槓的字符串,您需要複製該反斜槓。這就對了。
1
\字符是一個轉義字符,即改變後續字符[s]的含義的字符。例如,「n」字符只是一個「n」。但是如果你像「\ n」那樣轉義它就會成爲「換行符」。因此,如果您需要使用\ literal,則需要使用...自身:\\
0
當您將列表轉換爲字符串(例如打印它)時,它會調用repr
包含的每個對象在列表中。這就是爲什麼你會在你的第二行輸出中得到引號和額外的反斜槓。試試這個:
s = "\\a string with an escaped backslash"
print s # prints: \a string with an escaped backslash
print repr(s) # prints: '\\a string with an escaped backslash'
的repr
調用把引號括起來的周圍,並展示了反斜槓。
相關問題
- 1. Mysql的真實逃生繩等問題
- 2. PHP的SQL注入逃生繩
- 3. 逃生的功能後jQuery的報價,用繩子
- 4. 如何逃生和
- 5. 逃生#{{}}
- 6. 逃生的命令爲「和\
- 7. 逃生和在App.config中
- 8. 如何逃生和在SCP
- 9. 使用逃生和樹枝生?
- 10. Solr的dataimport和SQL和XML逃生
- 11. 逃生蘇-c
- 12. 逃生變量
- 13. Simulink逃生delete_block
- 14. 逃生與flask.escape
- 15. AutoHotkey的逃生*
- 16. 逃生撇號
- 17. 逃生斜線
- 18. Python:json.loads逃生甩
- 19. 逃生在Sybase
- 20. 逃生HTML
- 21. 如何逃生<和「XSLT文件?
- 22. 字符串逃生和sprintf()函數
- 23. 逃生和替換報價在VBS
- 24. 逃生html標籤
- 25. 逃生的ExtJS的
- 26. 逃生$ NUM別名
- 27. Handlebarsjs「智能」逃生
- 28. 逃生JSF頁面
- 29. 在逃生的.vimrc
- 30. 逃生值Laravel 4
Aww我明白了,謝謝!另一個小問題:有沒有辦法告訴're.escape'不要逃離空格? –
@JohnSmith:不,''re.escape()'[只是在每個非字母數字字符前打一個反斜槓](http://docs.python.org/library/re.html#re.escape)。這有點矯枉過正,但不應該傷害。實際上,如果在編譯正則表達式時使用're.VERBOSE',則需要轉義空格。 –
在你的情況下,它確實受到了傷害,但是你可以很容易地解決這個問題:首先拆分,然後轉義:'key = [key.split()]中item的[re.escape(item)]'。 –