Python 正則表達式

正則表達式正則表達式

字符串是編程時涉及到的最多的一種數據結構,對字符串進行操做的需求幾乎無處不在。好比判斷一個字符串是不是合法的Email地址,雖然能夠編程提取@先後的子串,再分別判斷是不是但粗和域名,但這樣作不但麻煩,並且代碼難以複用。編程

正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,咱們就認爲它"匹配"了,不然,該字符串就是不合法的。數據結構

因此咱們判斷一個字符串是不是合法的Email的方法是:函數

  一、建立一個匹配Email的正則表達式;spa

  二、用該正則表達式去匹配用戶的輸入來判斷是不是合法設計

由於正則表達式也是用字符串來表示的,因此咱們要先了解如何用字符來描述字符字符串

特殊字符
string

變長字符域名

進階進階

 

re模塊

因爲Python的字符串自己也用\轉義,因此要特別注意:s=‘asdf\\asdf’

所以咱們強烈建議使用Python的r前綴,就不用考慮轉義的問題了

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

re.match(pattern, string, flags=0)

函數 re.search 掃描整個字符串並返回第一個成功的匹配,不然返回None (re.search(pattern, string, flags=0))

函數 re.findall 以列表的形式返回所有能匹配的字串  (re.findall(pattern, string[, flags]))

提取子串 除了簡單地判斷是否匹配以外,正則表達式還有提取子串的強大功能。用()表示的就是要提取的分組

    ^(\d{3}-(\d{3,8}$) 分別定義了兩個組,能夠直接匹配子串中提取出區號和本機號

貪婪匹配

正則匹配默認是貪婪匹配,也就是匹配儘量多的字符。

替換

Python的re模塊提供了re.sub用於替換字符串中的匹配項(re.sub(pattern, repl, string, max=0))

正則表達式的修飾符

相關文章
相關標籤/搜索