2017-06-22 86 views
0

需要幫助解釋字符串前綴和轉義字符。我在下面學習re.compile()命令的參數時發現了這個問題。Python中的字符串前綴和轉義字符

a = re.compile(r'^([a-z]|_)*$') 
b = re.compile(r'^([a-z]|_)*:([a-z]|_)*$') 
c = re.compile(r'[=\+/&<>;\'"\?%#[email protected]\,\. \t\r\n]') 
  1. 什麼是r意思?
  2. 什麼意思是\'\?\,\.
  3. \t\r\n是什麼意思?
+3

我的意思不是粗魯,但你的問題與're.compile()'無關,所以難怪你看到的文檔沒有幫助。你看錯了地方。你在問[字​​符串前綴](https://docs.python.org/3.5/reference/lexical_analysis.html#string-and-bytes-literals)和[轉義字符](https://docs.python.org /3.5/reference/lexical_analysis.html#string-and-bytes-literals)。 –

+0

啊是的..對不起..編輯標題.. – Lam

+0

在文檔中解釋https://docs.python.org/2/library/re.html – lkdhruw

回答

1

r是什麼意思?

這是raw字符串文字的前綴。從本質上來說,它可以防止正常逃逸發生,留在反斜槓中。這裏給出了更深入的解釋:https://stackoverflow.com/a/2081708/416500

\',\ ?, \,和。是什麼意思?

這些都是由反斜槓逃脫正則表達式特定的字符。該\?告訴它尋找一個文字?,該\,告訴它尋找一個文字,\.告訴它尋找一個文字.

\ t \ r \ n是什麼意思?

\t是製表符,\r是一個回車,\n是換行字符。這些在大多數程序中都以空格形式呈現,但存儲方式不同。

一個方便的工具,用於打破正則表達式模式我用了很多是Regex Pal(無隸屬關係),它讓你懸停在正則表達式的部分,看看它是如何編譯的。

+0

非常感謝您的幫助!欣賞它! – Lam