正規表示式小記

2022-05-18 08:02:12 字數 1946 閱讀 2293

動機:

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 re

with 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匹配單詞的開始或結束 匹配字串的開始 匹配字串的結...