10. python3中的正則表達式

何所謂正則表達式?個人理解就是文本搜索的一種規則。那么正則表達式就需要解決下面的問題

  • 規則如何表示
  • 規則如何使用

規則如何表示

序號 需求 表示
1 任意一個字符 (.)
2 任意一個字符在備選范圍內(字符集) ([a-zA-Z0-9]),[^abc]
3 匹配開頭 '^' (注意區別反轉字符集2,沒有放到中括號里面)
4 匹配結尾 '$'

如果需要匹配多個連續的字符,怎么辦?那么就看連續的定義了,a) 如果只需要匹配('python','pear')兩個單詞,管道運算符就這么來了

序號 需求 表示
5 匹配不等長單詞 管道運算符<code>(|)</code> ,'p(ython(|)ear)'

多個字符的另外一種情況就是重復模式

序號 需求 表示
6 0個或者多個t '(t)*'
7 只是一個t '(t)+'
8 指定數量m,n '(t){m,n}'

例子:匹配網址'www.lxweimin.com', 'wwww.jianshou.com'等網址可以為
r'^(w){3,4}\.jiansh(u|ou)(.)+com$'
主要是希望在你使用的時候能夠查詢到這些。注意轉義字符\\的使用


規則如何使用?

規則已然通過字符串的方式構建了,這種字符串中的特定符號代表了一系列已知或者未知的東東。那么如何使用這個字符串呢?python提供了re模塊干這個事情,那么在深入之前,舉個例子。老板讓你找一個黑頭發或者黃頭發,年齡在16-20之間,罩杯在c和d之間的女模特,你會問什么問題呢?

  • 去哪兒找(大街上,模特公司,還是xx數據庫)
  • 怎么找(方法很多哈)
  • 到底能不能找到(沙漠里估計就難找到這樣的模特呀)
  • 找多少(一個還是都找到)
  • 找到了做什么(走秀表演,還是拍廣告)
  • 怎么才能快速的找到(問問前輩,做過了的)

這么多的問題,re模塊都給你解決了,對應模式的搜索

  • 去哪兒找(提供的字符串)
  • 怎么找(使用re模塊)
  • 到底能不能找到(search下看看)
  • 找多少(findall 全給你,你自己決定)
  • 找到了做什么(分割字符串,替換)
  • 怎么才能快速的找到(compile一下)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容