第二章 python分散式爬蟲打造搜尋引擎環境搭建 第二節正則表示式的學習和編寫練習
阿新 • • 發佈:2018-11-24
第一,正則表示式介紹
1. 為什麼必須會正則表示式?關於正則表達的詳細介紹可檢視一篇官網的技術文件!
正則表示式是一個特殊的字元序列,它能幫助你方便的檢查一個字串是否與某種模式匹配。正則表示式,又稱規則表示式,通常被用來檢索、替換那些符合某個模式(規則)的文字。正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。
2.熟悉掌握以下基本的正則表示式意義!
1) ^ $ * ? + {2} {2, } {2,5} |
2) [] [^] [a-z] .
3) \s \S \w \W
4) [\u4E00-\u9FA5] () \d
2. 正則表示式的簡單應用及python示例
提取出字串中的生日!我們知道,生日的寫法有很多種,這裡就以此為需求,按照要求篩選你需要的字串!
import re broth="我的生日是1991年02月14日" #broth="我的生日是1991-02-14" #broth="我的生日是1991-2-14" #broth="我的生日是1991/02/14" #broth="我的生日是1991/2/14" #broth="我的生日是1991年02月" #broth="我的生日是1991年02" regstr=".*生日是((\d{4}[年/-]\d{1,2})(([月/-]($|\d{1,2}))|$).*)" #regstr=".*([/年-])" objectMatch=re.match(regstr,broth) if objectMatch: print(objectMatch.group(1))
這裡需要注意一個東西就是[年/-]這個匹配的規則,其中只要調換順序,python就報錯了,[年-/]就是“-/”這樣子組合就報錯了,一直沒搞明白為什麼,如果看到這裡的有人知道的話,麻煩給個解答,在此謝過了!下面給出報錯的圖:
到此,整個的基礎知識算是介紹完了,接下來就開始專案的實戰訓練了!後面的知識才是重點,前面的這些都是為後面的開發做的準備,孰輕孰重一目瞭然!