Python原始字串(Raw String)/Unicode/str
阿新 • • 發佈:2019-02-17
來源
原始字串是用來解決正則表示式和ASCII字元之間的衝突而產生的技術。例如正則表示式\b
表示匹配單詞邊界,而ASCII字元\b
表示退格,如果正則表示式要匹配退格,就要使用雙重轉義,如\\b
。為了簡化過多的轉義符,就引入了原始字串,例如字串'\\b'
可用r'\b'
來表示。所以原始字串常用在正則表示式裡。
匹配UNICODE字元和回車的正則表示式:
ur'你好!\n'
表示represent
類似於表示UNICODE字元的時候,在字串前加’u’,表示原始字串的時候,在字串前加’r’,這個字串就是原始字串了。加r字首的意思就是防止轉義。
普通字串轉原始字串
s = "Hello \n World!"
# 輸出使用者易讀的格式(顯式轉換)
print str(a)
# Hello
# World!
# 輸出使用者易讀的格式(隱式轉換)
print a
# Hello
# World!
# repr輸出原始字串(Python內部表示的字串)
print repr(a)
# 'Hello \\n World!'
原始字串轉普通字串
str = "\u7a7f\u8d8a\u4e9a\u6d32\u6700\u957f\u6700'
#方法1 使用unicode_escape 解碼
print str.decode('unicode_escape')
print unicode(str, 'unicode_escape')
#方法2:若為json 格式,使用json.loads 解碼
import json
print json.loads('"%s"' %str)
#方法3:使用eval
print eval('u"%s"' % str)
#repr(...)在字串外增加一對 'deng' -> "'deng'"
# repr(object) -> string
#eval(repr(object)) == object
#方法4:使用python3