動機:
1、文字處理成為計算機常見的工作之一。
2、對文字內容的搜尋、定位、提取是邏輯比較複雜的工作
3、為了快捷方便的解決上訴問題,產生了正規表示式技術。
定義:文字的高階匹配模式,提供搜尋,替換等功能。其本質是由一系列字元和特殊符號構成的字串,這個字串既正規表示式。
目標:應用
1、熟練掌握正規表示式符號
2、知道什麼是正規表示式,如何
3、能夠讀懂正規表示式,編寫見到的正則匹配
4、會使用re模組操作正規表示式
正規表示式特點:
1、方便文字處理
2、支援語言眾多
3、使用靈活,變化多樣
資料的分類:
1、結構化資料:
特點:有固定的格式,如html,xml,json
2、非結構化的工具:
以wb方式寫入檔案中
re模組使用流程
1、寫法1
r_list=re.findall('正則',『字串』,re.s)
2、寫法2
1、建立編譯物件
p = re.compile('正則',re.s)
2、進行字串匹配
r_list = p.findall(html)
3、常用的方法
1、match(s):字串開頭第乙個,返回物件
2、search(s):從開始往後找,匹配第乙個,返回物件
3、group()、從match和search中返回物件中取值
4、findall()、返回全部匹配,返回乙個列表
4、元字元
. :匹配任意乙個字元,不包括\n
\d:匹配1個數字
\s:空白字元
\s:非空白字元#[\s\s]*匹配所有的字元
:包含 內容 #a[bcd]e --> abe ace 或者ade
\w:普通字元
\w:特殊字元
*:0次或多次
+:一次或多次
?:0次或一次
:m次:m-->n次,ab[1,3]--->abc abbc abbbc
5、貪婪模式和非貪婪模式
1、貪婪模式匹配
(.* ) 點星,在整個表示式匹配成功的前提下,盡可能多的去匹配
2、非貪婪模式
(.*?),在整個表示式匹配成功的前提下,盡可能少的去匹配
import rewith open('./hei.html', 'r', encoding='utf-8') as f:
file = f.read()
p = re.compile('', re.s) #使用re.s引數以後,正規表示式會將這個字串作為乙個整體,將「\n」當做乙個普通的字元加入到這個字串中,在整體中進行匹配
r_list = p.findall(file)
print(r_list)
正規表示式分組
import re#說明:先按照整體匹配出來,然後再匹配()中的內容
#如果有2個或者多個(),則以元組的方式去顯示
s='a b c d'
p1=re.compile('\w+\s+\w+')
print(p1.findall(s))
p2=re.compile('(\w+)\s+\w+')
print(p2.findall(s))
p3=re.compile('(\w+)\s+(\w+)')
print(p3.findall(s))
#\w代表普通字元 \s空白字元 +一次或多次
#第一步['ab','cd']
#第二步[('a','b'),('c','d')]
執行結果:['a b', 'c d']
['a', 'c']
[('a', 'b'), ('c', 'd')]
正規表示式小記
once 匹配那些以once開頭的字串once 匹配那些以once結尾的字串 a z 匹配所有的小寫字母 a z 匹配所有的大寫字母 a za z 匹配所有的字母 0 9 匹配所有的數字 0 9 匹配所有的數字,句號和減號 加 是為了轉義 f r t n 匹配所有的白字元 alpha 任何字母 di...
正規表示式小記
何謂正則?個人理解就是不記得乙個人長什麼樣,只是模糊的有個印象,然後大體描繪出來這個的特徵去找這個人!即,正規表示式去匹配查詢的物件 先了解幾個知識點 例子 2 0 4 d 25 0 5 01 d d 2 0 4 d 25 0 5 01 d d 這是乙個大體匹配ip位址的正規表示式 首先,2表示第乙...
2015 11 19 正規表示式使用小記
在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的 說明 匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結...