正則表達式:正則表達式
正則表達式(Regular Expression,常簡寫爲regex或者RE),又稱規則表達式,它不是某個編程語言所特有的,是計算機科學的一個概念,一般被用來檢索和替換符合某些規則的文本。目前,正則表達式已經在各類計算機語言(如Java、 C#和Python等)中獲得了普遍的應用和發展。
在Python中,能夠使用正則表達式進行與字符串相關的一些匹配,正則表達式是一種用來匹配字符串的強有力武器,它只和字符串打交道,設計思想是用一種描述行的語言來給字符串定義一個規則,凡是符合規則的字符串就認爲它「匹配」,不然就不匹配。即從大段的文字中找到符合規則的內容!!!編程
字符組:編程語言
[ ] 寫在中括號中的內容,都出如今下面的某一個字符的位置上都是符合規則的spa
[0-9] 匹配數字0-9設計
[a-z] 匹配a到z的小寫字母blog
[A-Z] 匹配A到Z的大寫字母ci
[a-zA-Z0-9] 匹配大小寫字母+數字
[a-zA-Z0-9_] 匹配數字字母下滑線字符串
元字符:io
量詞:table
{n}表示 這個量詞以前的字符出現n次
{n,} 表示這個量詞以前的字符至少出現n次
{n,m} 表示這個量詞以前的字符出現n-m次
? 表示匹配量詞以前的字符出現 0次 或者 1次 表示無關緊要
+ 表示匹配量詞以前的字符出現 1次 或者 屢次
* 表示匹配量詞以前的字符出現 0次 或者 屢次
. ^ $
正則表達 |
待匹配的字符 |
匹配到的結果 |
說明 |
結. |
結果結束結緣 |
結果結束結緣 |
匹配全部」海.」的字符 |
^結. |
結果結束結緣 |
結果 |
只從開頭匹配」海.」匹配到了一個就會停 |
結.$ |
結果結束結緣 |
結緣 |
只匹配結尾的」海.」,同上面的相反 |
正則表達 |
待匹配的字符 |
匹配到的結果 |
說明 |
結.? |
結果和結束和結緣 |
結果 結束 結緣 |
?表示重複零次或一次,即只匹配"結"後面一個任意字符 |
結.* |
結果和結束和結緣 |
結果和結束和結緣 |
*表示重複零次或屢次,即匹配"結"後面0或多個任意字符 |
結.+ |
結果和結束和結緣 |
結果和結束和結緣 |
+表示重複一次或屢次,即只匹配"結"後面1個或多個任意字符 |
結.{1,2} |
結果和結束和結緣 |
結果和 結束和 結緣 |
{1,2}匹配1到2次任意字符 |
注意:前面的*,+,?等都是貪婪匹配,也就是儘量匹配,後面加?號使其變成惰性匹配
正則 |
待匹配字符 |
匹配結果 |
說明 |
結.*? |
結果和結束和結緣 |
結 結 結 |
惰性匹配 |
正則表達式的匹配特色 :
貪婪匹配,它會在容許的範圍內取最長的結果
非貪婪模式/惰性匹配 : 在量詞的後面加上?
.*?x 匹配任意非換行符字符任意長度 直到遇到x就中止
2019年11月18日