麻煩的正則表達式(regular expression)

首先這是一個模塊  re  使用以前須要導入 import re正則表達式

裏面包括不少的定義函數,功能很強大,主要用於字符串的搜索,查找,匹配express

什麼是正則表達式(what):函數

正則表達式(regular expression)定義:spa

正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配,對象

描述了一種字符串匹配的模式(pattern),能夠用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等blog

怎麼建立正則表達式(how):字符串

起初真是被這麼陌生高大上名字給弄暈了,其實:數學

構造正則表達式的方法和建立數學表達式的方法同樣。也就是用多種元字符與運算符能夠將小的表達式結合在一塊兒來建立更大的表達式。正則表達式的組件能夠是單個的字符、字符集合、字符範圍、字符間的選擇或者全部這些組件的任意組合。就是由於各類字符不一樣的結合方式,能夠來告訴計算機怎麼查找,匹配string是咱們所須要的字符串string

正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱爲"元字符")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式做爲一個模板,將某個字符模式與所搜索的字符串進行匹配。io

這些字符主要包括四個部分:

普通字符:

普通字符包括沒有顯式指定爲元字符的全部可打印和不可打印字符。這包括全部大寫和小寫字母、全部數字、全部標點符號和一些其餘符號。

非打印字符:

 

特殊字符:

所謂特殊字符,就是一些有特殊含義的字符,如上面說的 runoo*b 中的 *,簡單的說就是表示任何字符串的意思。若是要查找字符串中的 * 符號,則須要對 * 進行轉義,即在其前加一個 \: runo\*ob 匹配 runo*ob。

許多元字符要求在試圖匹配它們時特別對待。若要匹配這些特殊字符,必須首先使字符"轉義",即,將反斜槓字符\ 放在它們前面。下表列出了正則表達式中的特殊字符:

限定符:

限定符用來指定正則表達式的一個給定組件必需要出現多少次才能知足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種。

這些不用所有如今所有記憶下來,很難記住,嘗試大膽使用,按照本身的要求,嘗試組合字符構建正則表達式,不斷改變正則表達式,達到本身切分目的後,理解比較各類切分字符組合含義,再記憶,有些看起來功能相同,能處理達到本身要求,實際隱藏的做用也就不必探究了。

各類函數:

re.match(patten,string,flags)(pattern=正則表達式,string=須要處理的字符串,flags=標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。)

嘗試從字符串的起始位置匹配一個模式,若是不是起始位置匹配成功的話,match()就返回none。

 咱們可使用group()或groups()匹配對象函數來獲取匹配後的結果。

。。。

剛纔知道有一個能夠取代正則表達式的庫。。小白卒

相關文章
相關標籤/搜索