元字元
描述.
(點號)
匹配除換行符(\n \r)以外的所有字元。要匹配包括「\r\n」在內的任何字元,使用「[\s\s]」的模式。
^
從字串首位匹配。書寫時必須寫在首位,否則匹配為空。
$從字串末尾匹配。書寫時必須寫在末尾,否則匹配為空。
*
重複匹配任意多次(包括0次)。
+
重複匹配任意多次(不包括0次)。
?
匹配0次或1次。
n是乙個非負整數。匹配確定的n次。
至少匹配n次。
m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。
[xyz]
字符集。匹配字符集中任何乙個字元。
[a-z]
字符集範圍。範圍內所有的字元都可以匹配。取消其元字元的功能(見注釋1)。
\
反斜槓。使元字元失去特殊功能;使部分普通字元實現特殊功能(見注釋2)。
( )
將( ) 之間的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域。
|
將兩個匹配條件進行邏輯「或」(or)運算。
注釋1:如果在[ ]裡面出現其他的元字元,除例外情況(見註1),那麼會取消其元字元的功能,只是普通字元。
-
:如果在[ ]裡面表示範圍,比如[a-z],則-
有特殊意義,此時匹配時,不會匹配到-
,如果此時還需要匹配-
,那麼再在 [ ]裡面加乙個-
(加在前後都可以)。
^
:與出現在中括號外的意思不同,如果^
出現在中括號裡面,則表示取反的意思。比如 [^a,b] 表示除了 a , b(注意:這裡的』,』也是乙個字元,沒有其他的意義) 以外所有的字元都匹配(包括換行符)。注意,如果字串中有\
,在沒轉譯的時候,匹配的結果是\\
。
注釋2:\
後面如果跟元字元,那麼元字元就失去它代表的特殊意義,變為普通字元。例如 :
*
本代表重複匹配任意多次,\*
就只表示*
這個普通字元(注意\**
和\*\*
表達的是完全不同的兩個意思,自己動手試一試)。
\
後面跟部分普通字元,會實現特殊意義。例如 :
\d
匹配任何十進位制的數,相當於 [0-9]
\d
匹配任何非數字字元,相當於 [^0-9]
\s
匹配任何空白字元,相當於 [ \t\n\r\f\v]
\s
匹配任何非空白字元,相當於 [^ \t\n\r\f\v]
\w
匹配任何字母和數字字元,相當於 [0-9a-za-z]
\w
匹配任何非字母和數字字元,相當於 [^0-9a-za-z]
\b
匹配乙個特殊邊界(非任何字母和數字的都是特殊字元)。比如 : 『i am a big man』,用 r』i\b』 去匹配,只能匹配到 乙個 『i』 ,因為 『big』的』i』後面跟的是』g』,不是特殊字元,故匹配不到。(注意:用這種方法匹配,前面一定要加 『r』 防止轉譯。』\b』也可以放到前面)
Python中常用re模組
匹配字串開頭 匹配字串結尾 匹配任意字元,除了換行符 匹配指定的一組字元,amk 匹配 a 或 m 或 k 匹配除了這組字元以外的字元 匹配0或多個 匹配1或多個 匹配0或1個,非貪婪模式 精確匹配前面表示式n次,如a不能匹配ba,只能匹配baab 匹配n次前面的表示式,a a a a 匹配 n 到...
re模組簡介及元字元和轉義字元
import re 代表萬用字元,除了 n不能匹配外,其它全部都能匹配,乙個點代表乙個字元 代表字串開頭進行匹配,只能放在最前面 代表字串結尾進行匹配,只能放在最後面 代表0到無窮次 代表1次到無窮次 代表0次到1次 代表自行控制多少次,代表6次,代表1,2,3,4,5,6次 注意 前面的 等都是貪...
常用模組 re模組
由堆具有特殊意義的字元組成的式子。用於匹配查詢字串內容。主要學習重點,就是學習這些字元的含義。abc 表示式不包含任何特殊字元,就是精準匹配,說白了判斷是否相同 print re.findall abc abcbbb abc n t f 符號含義 a從字元的開始處開始匹配 z從字元的結尾處匹配 從字...