就其本質而言,正規表示式(或 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裡的原生字串很好地解決了這個問...