Python正規表示式

2021-09-08 03:07:50 字數 1849 閱讀 9582

.   它匹配除了換行字元外的任何字元,在 alternate 模式(re.dotall)下它甚至可以匹配換行

^  匹配行首。除非設定 multiline 標誌,它只是匹配字串的開始。

$  匹配行尾,行尾被定義為要麼是字串尾,要麼是乙個換行字元後面的任何位置。

它們常用來指定乙個字元類別,所謂字元類別就是你想匹配的乙個字符集

\ 反斜槓後面可以加不同的字元以表示不同特殊意義。它也可以用於取消所有的元字元,這樣你就可以在模式中匹配它們了

| 可選項,或者 "or" 操作符。

() 一般情況下表示乙個記憶組 (remembered group)。你可以利用 re.search 函式返回物件的 groups() 函式獲取它的值

*  重複0或n次

+  重複1或n次

?  重複0或1次

該限定符的意思是至少有 m 個重複,至多到 n 個重複

\d 匹配任何十進位制數;它相當於類 [0-9]。

\d 匹配任何非數字字元;它相當於類 [^0-9]。

\s 匹配任何空白字元;它相當於類 [ \t\n\r\f\v]。

\s 匹配任何非空白字元;它相當於類 [^\t\n\r\f\v]。

\w 匹配任何字母數字字元;它相當於類 [a-za-z0-9_]。

\w 匹配任何非字母數字字元;它相當於類 [^a-za-z0-9_]。

\a 只匹配字串首。當不在 multiline 模式,\a 和 ^ 實際上是一樣的。然而,在 multiline 模式裡它們是不同的;\a 只是匹配字串首,而 ^ 還可以匹配在換行符之後字串的任何位置。

\z 只匹配字串尾。

\b 單詞邊界。這是個零寬界定符(zero-width assertions)只用以匹配單詞的詞首和詞尾。單詞被定義為乙個字母數字序列,因此詞尾就是用空白符或非字母數字符來標示的。

\b 另乙個零寬界定符(zero-width assertions),它正好同 \b 相反,只在當前位置不在單詞邊界時匹配。

注:[akm$]將匹配字元"a", "k", "m", 或 "$" 中的任意乙個;"$"通常用作元字元,但在字元類別裡,其特性被除去,恢復成普通字元。

matchobject=re.match(pattern,string,flag='0') :決定 re 是否在字串剛開始的位置匹配

matchobject=re.search(pattern,string,flag='0'):掃瞄字串,找到這個 re 匹配的位置

tuple=re.findall(pattern,string,flag='0') : 找到 re 匹配的所有子串,並把它們作為乙個列表返回

matchobjectlist=re.finditer(pattern,string):找到 re 匹配的所有子串,並把它們作為乙個迭代器返回

findstring = matchobject.group() :返回被 re 匹配的字串

i = matchobject.start() :返回匹配開始的位置

i = matchobject.end() :返回匹配結束的位置

start,end = matchobject.span() :返回乙個元組包含匹配 (開始,結束) 的位置

dotall, s :使 . 匹配包括換行在內的所有字元

ignorecase, i: 使匹配對大小寫不敏感

locale, l :做本地化識別(locale-aware)匹配

multiline, m: 多行匹配,影響 ^ 和 $

verbose, x :能夠使用 res 的 verbose 狀態,使之被組織得更清晰易懂

1.先編譯後使用:re.compile('pattern')

2.切勿重複編譯:放入全域性空間或放入cell空間並例項出乙個閉包例項

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...