python原始字串是指在引號前新增 r 或 r 的字串,如 r'hello'。
原始字串是為了解決ascii字元和正規表示式特殊字元間的衝突而產生的,但實際應用範圍可以更廣泛。其本質原理就是取消字串由輸入到讀入記憶體過程中ascii特殊字元的含義,使其按字面形式讀入記憶體。
>>> p = r'\n'
>>> p
'\\n'
>>> print p
\n>>> t = '\\n'
>>> t
'\\n'
>>> print t
\n>>> if t == p :
print true
true
在上面的**中,可以發現 r『\n』 和 '\\n'是等價的,事實上 r『\n』 只是為了書寫方便而發明的另一種記法而已。可以看到 p 輸出的是 '\\n',也就是說p在記憶體中的記法就是 '\\n',而不會把 r 也讀入記憶體。
下面解釋一段正規表示式中容易讓人迷惑的**:我們要找一對原始的 \n 字元而不是換行。為了找到它,我們使用了乙個簡單的正規表示式,它的作用是查詢通常被用來表示空白字元的反斜線-字元對(backslash-character pairs)。
>>> import re
>>> m = re.search('\\[rtfvn]', r'hello world!\n') # 匹配失敗
>>> if m is not none: m.group()
>>> m = re.search(r'\\[rtfvn]', r'hello world!\n') #匹配成功
>>> if m is not none: m.group()
'\\n'
\n在ascii中代表換行,而在正規表示式中也是特殊符號,為了讓re編譯器把'\n'當成你想要表達的字串,而不是換行,需要另乙個反斜線對它進行轉義\\n。上面
r'\\[rtfvn]'中的 r 是為了將兩個反斜線都讀入記憶體
,再次證明 r 只作用在讀入記憶體的過程中。
利用原始字串輸入路徑:
>>> path = r'c:\windows\temp' + '\\'
>>> print path
c:\windows\temp\
上面 r 是為了取消 \temp中 \t 部分的特殊含義,為避免發生錯誤,在書寫路徑名時最好都用 r 宣告。
單個\ 不能緊挨著引號,不然會報錯。
Python中原始字串操作符 r R
原始字串 所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。在python中為了使反斜槓和元字元取消字元的特殊功能,需要在字元前新增反斜槓。解決的辦法就是為正規表示式使用 python 的 raw 字串表示 在字串前加個 r 反斜槓就不會被任何特殊方式處理,所以 r n 就是包含...
python原始字串
那麼,我們如何設計程式來處理任意數量的時差?答案是 使用萬用字元 wildcard urlpatterns 正如我們之前提到過,乙個url模式就是乙個正規表示式。因此,這裡可以使用d 來匹配1個以上的數字。4urlpatterns patterns r time plus d hours ahead...
python 原始字串
prthon 反斜槓為轉義字元 str c now str c now print str syntaxerror invalid character u ff09 print c noe c oe 字串前加 r 為原始字元 str r c now a str c now a print str c...