1. 程式人生 > >Python原始字串(Raw String)/Unicode/str

Python原始字串(Raw String)/Unicode/str

來源

原始字串是用來解決正則表示式和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

參考