Python筆記2 正規表示式字元匹配規則

2021-10-03 12:37:20 字數 1211 閱讀 4346

就其本質而言,正規表示式(或 re)是一種小型的、高度專業化的程式語言,它內嵌在python中,並通過 re 模組實現。

正規表示式模式被編譯成一系列的位元組碼,然後由用c編寫的匹配引擎執行。

普通字元

大多數字元和字母都會和自身匹配

元字元元字元說明.

匹配乙個除了換行符的任意乙個字元

^之後後面跟的字串在開頭,才能匹配

$只有它前面的字串在待檢測的字串的最後,才能匹配上

*控制它前面的字元,前面的字元出現零個或多個都可以匹配上

+匹配它前面的字元至少一次

?匹配它前面的字元零個到乙個

{}控制它前面乙個字元的匹配個數,可以有區間(閉區間)。有區間的情況下按照多的匹配

\後面跟元字元去除特殊功能;後面跟普通字元實現特殊功能;引用序號對應的字組所匹配的字串(乙個括號為乙個組);在開頭加r表示不轉義|

匹配字元的類別,元字元在類別中不起作用

()把括號內字元作為乙個整體去處理

元字元說明\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_]

\b匹配乙個單詞邊界,也就是指單詞和空格間的位置

strr=「cxy9527_cxyy_test_0422cx」

str1=「cxy*」

print(re.findall(str1,strr))

輸出:['cxy', 'cxyy', 'cx']

---+ +例

```python

strr="cxy9527_cxyy_test_0422cx"

str1="cxy+"

print(re.findall(str1,strr))

輸出:[『cxy』, 『cxyy』]

python筆記 正規表示式(2)

re模組 核心函式和方法 import re m re.match foo foo 模式匹配字串 m.group 返回整個匹配物件 out 10 foo m re.match foo bar 模式並不能匹配字串 m.group 這個就會出現報錯了,跑出attributeerror異常,列印一下是no...

Python 正規表示式 2

coding utf 8 匯入re模組 import re 原始字串 c c desktop print c 假設desktop的父路徑是c 我們如何匹配到呢 result re.match c c print result.group 但是這樣很複雜 容易讓人迷 所以在python 中提供乙個r表...

Python正規表示式學習筆記(2)

與大多數程式語言相同,正規表示式裡使用 作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元 那麼使用程式語言表示的正規表示式裡將需要4個反斜槓 前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成乙個反斜槓。python裡的原生字串很好地解決了這個問...