正規表示式的運用

2021-09-24 11:28:04 字數 2413 閱讀 8037

re模組(集中了正規表示式所有的功能)

¨郵箱位址

[a~za~z0-9

\._+]+@[

a~za~z

]+\.(

com|edu|net)

其中[a~za~z0-9\._+]+表示乙個字元要滿足中括號裡的範圍,字元可以是a~z或者a~z或者0-9或者「."(¨

元字元包括:

. *

? + ^ $ | \

,所以需要匹配元字元時需要加上反斜線

\ ),可以出現1到n次

接著加上「@」字元

[a~za~z]+表示匹配中括號的字元

接著加上「."

最後加上圓括號裡選擇的乙個內容

注:\d匹配任意數字字元[0-9]

\w匹配任何包含下劃線的字元[a~za~z0-9_]

只想抓取禮物影象的相關資訊

例如:¨

對應正規表示式:\.\.\/img\/gifts\/img.*\.jpg

from urllib.request import urlopen

from bs4 import beautifulsoup

import re

html=urlopen('')

bs=beautifulsoup(html,'html.parser')

images=bs.find_all('img',)

for image in images:

print(image['src'])

//上一句可以換成

imagesrc=image.get("src")

print(imagesrc)

結果:../img/gifts/img1.jpg

../img/gifts/img6.jpg

獲取標籤的屬性資訊 可以是href

表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.

比如:使用/<.*>/匹配的結果為:h1>chapter 1 - 介紹正規表示式使用/<.*?>/匹配結果為:h1。

查詢括號裡的內容

import re

a='gasfxxlxsdhfkjhfbdxxll45xx'

info=re.findall('xx(.*?)x',a)

print(info)

結果:['l', 'll45']

貪心法(盡可能大的去匹配字元)

import  re

a='gasfxxlxsdhfkjhfbdxxll45xx'

info=re.findall('xx(.*)x',a)

print(info)

結果:['lxsdhfkjhfbdxxll45x']

爬取**:

import requests

import re

import time

headers=

f=open('e:/aa.txt','a+')

def get_info(url):

res=requests.get(url,headers=headers)

if res.status_code==200://表示http請求成功

contents=re.findall('',res.content.decode('utf-8'),re.s)

for content in contents:

f.write(content+'\n')

else:

pass

if __name__== '__main__': //這裡一定記得需要每一邊的雙下劃線

urls=[''.format(str(i)) for i in range(2,9)]

for url in urls:

get_info(url)

time.sleep(1)

f.close()

如果使用貪心演算法,則中間的標籤都會包含在內

正規表示式的運用

靶場位址 原理 又稱規則表示式,電腦科學的乙個概念,正規表示式通常被用來檢索 替換那些符合某個模式 規則的文字 這裡是指將正則匹配到的值賦值給變數 regular if判斷語句,這裡是指當變數 regular有值時將輸出變數key,也就是flag 那麼我只需要構造成能成功匹配正則的值就能成功輸出fl...

中運用正規表示式

看到大家討論這方面的東西,作點貢獻聊表各位高手對這個版快的無私奉獻 oops 如果使用者熟悉linux下的sed awk grep或vi,那麼對正規表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現在已經在許多linux實用工具中得到了應用。千萬不要以為正規表示式只是perl...

正規表示式簡單運用

在學習中呢,剛認識到正則的一些用處,好處,那麼在這裡就講講正規表示式的一些簡單運用。我希望能讓你們了解到什麼是正規表示式,同時能讓自己加深對正規表示式的理解。第一次看到正規表示式的時候呢,根本看不懂這是什麼。就例如 nkeyup value value.replace u4e00 u9fa5 g,o...