python中原始字串解析

2021-06-23 01:16:06 字數 1249 閱讀 6708

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...