国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬蟲基礎(chǔ)之正則表達式

這篇具有很好參考價值的文章主要介紹了Python爬蟲基礎(chǔ)之正則表達式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、什么是正則表達式?

二、re.compile()編譯函數(shù)

三、group()獲取匹配結(jié)果函數(shù)

四、常用匹配規(guī)則

4.1匹配單個字符

4.2匹配前字符次數(shù)

4.3匹配原生字符串

4.4匹配字符串開頭和結(jié)尾

4.5分組匹配

五、re.match()開頭匹配函數(shù)

六、re.search()全文搜索函數(shù)

七、re.findall()查找所有函數(shù)

八、re.sub()與re.subn()查找替換函數(shù)

九、re.split()分割字符串函數(shù)?

十、貪婪模式和非貪婪模式


一、什么是正則表達式?

所謂的正則表達式其實就是一些特殊字符規(guī)則組合。通過這些字符規(guī)則組合開發(fā)者可以檢索并替換出一些符合這種規(guī)則的字符串文本數(shù)據(jù)。

二、re.compile()編譯函數(shù)

可以將包含有正則表達式的字符串編譯成字節(jié)碼。

優(yōu)點:之前每次調(diào)用re.match( )函數(shù)匹配字符串時,python解釋器就會為其頻繁的申請和釋放空間,用來保存其正則表達式字符串。而通過調(diào)用re.complie( )函數(shù),解釋器只需為包含有正則表達式的字符串申請一次內(nèi)存空間就可以了,以后每使用此正則表達式匹配字符串時就可以直接拿來用,而無需重復(fù)頻繁為其申請內(nèi)存空間,從而在很大程度上提高運行效率。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

三、group()獲取匹配結(jié)果函數(shù)

groups( )方法的返回值是一個元組,元組中包含正則表達式內(nèi)所有捕獲組()檢索到的字符串。

group()方法用來獲取正則表達式檢索到的字符串。一般在re.match( )的正則表達式實參中一個小括號就是一個捕獲組。

用法:group( 捕獲組0[,捕獲組1][,捕獲組2][......] )

0: 表示獲取正則表達式檢索到的源字符串結(jié)果,這也是默認值。

1: 表示獲取正則表達式中第一個()檢索到的字符串

2: 表示獲取正則表達式中第二個()檢索到的字符串

????以此類推........

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

?Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

四、常用匹配規(guī)則

4.1匹配單個字符

.(點):匹配任意一個字符,除了換行符'\n'。

[abc...]:匹配一個字符,此字符可以是a、b或c。也可以寫成范圍[a-z]。

\d:匹配一個數(shù)字,即0~9。

\D:匹配除數(shù)字外的任意一個字符。

\s:匹配一個空格,一個tab鍵相當于2個空格。

\S:匹配除空格或tab鍵之外的任意一個字符。

\w:匹配一個普通字符,即a-z、A-Z、0-9、_

\W:匹配一個非普通字符即特殊字符,如:空格、@、$等

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

運行結(jié)果:

?Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

?4.2匹配前字符次數(shù)

* :前一個字符可以匹配0次、1次或多次即任意次。直到不滿足匹配規(guī)則返回之前匹配到的字符串。

+ :前一個字符必須至少匹配1次,否則匹配失敗。

?:前一個字符最多匹配1次或者不匹配返回空字符。

{m} :前一個字符必須精確匹配m次。

{m,} :前一個字符至少匹配m次,直到不滿足匹配規(guī)則結(jié)束。

{mix,max} :前一個字符必須匹配min~max次 即最少匹配min次,最多匹配max次;且不能為負數(shù)。

注意:以上字符需要與前一個字符配合使用即作用于前字符。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

? 4.3匹配原生字符串

在許多編程語言中"\"往往表示轉(zhuǎn)義字符,如:\n表示換行、\t表示tab鍵;為了表示"\"本身需要再加一個\ ,形成”\\“格式?;蛘咴谧址那懊婕印皉"字符:表示按肉眼看到的字符串原意檢索。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

4.4匹配字符串開頭和結(jié)尾

^str? :表示字符串開頭,即匹配以str開頭的字符串

[^a]? :此時“^”表示取反,即匹配除字母a的任意一個字符

str$? :表示字符串結(jié)尾,即匹配字符串的結(jié)尾即檢索的目標字符串必須以str結(jié)尾

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

4.5分組匹配

str1|str2? : 表示從左到右分別匹配str1或str2的正則字符串表達式。一旦有一方匹配成功則返回結(jié)果值。

(ab)? :表示將括號中正則表達式匹配到的結(jié)果作為一個分組。即在正則表達式參數(shù)中一個括號代表一個分組。

\num? : 表示引用正則表達式前面括號分組num匹配到的字符串。

(?P<name>) :表示給正則表達式的分組起別名。

(?P=name) :表示引用前面正則表達式分組別名name所匹配到的字符串。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

五、re.match()開頭匹配函數(shù)

re.match()函數(shù)只能匹配字符串的開頭。如果要匹配的正則表達式字符串不在原字符串的開頭則匹配不成功返回值None;匹配成功返回re.match類對象。

用法:re.match(pattern,string,flags)

pattern:?要匹配的正則表達式

string: 要檢索的源字符串文本

flags:? 標志位,用來控制正則表達式的匹配方式,如: re.I表示忽略大小寫,re.M表示多行匹配,re.S使正則表達式中“.”的匹配包括換行符\n在內(nèi)任意一個字符等等。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

六、re.search()全文搜索函數(shù)

從全文中從前往后搜索指定字符串,一旦找到則立即返回搜索到的對象。

用法:re.search(pattern,dest, flags)

pattern:? 正則表達式字符串

dest:? 要對其搜索的文本字符串

flags:? 標志位。re.I忽略大小寫,re.M多行匹配

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

?說明:span=(14,19)表示匹配到的字符串在源文本中的下標位置,不包含19。

七、re.findall()查找所有函數(shù)

用法:re.findall(pattern,dest_str,flags)

pattern:? 正則表達式字符串

dest_str:? 要對其搜索的文本字符串

flags:? 控制正則表達式匹配方式。re.I忽略大小寫,re.M多行匹配

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

八、re.sub()與re.subn()查找替換函數(shù)

re.sub( )函數(shù): 將文本字符串中正則表達式查找到的字符串替換為指定的字符串后并返回。

用法:re.sub(pattern,sub,dest_str,counts=0,flags)

pattern: 匹配模式即正則表達式

sub:? 替換為的字符串

dest_str: 要替換的文本字符串

counts:? 替換的最大次數(shù),默認為0表示替換全部

flags:控制正則表達式匹配方式

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

?說明: re.subn( )函數(shù)與re.sub( )函數(shù)的功能一樣。只不過在以元組的形式返回替換后的文本字符串時,還會包含原文被替換的字符串個數(shù)。

九、re.split()分割字符串函數(shù)?

以文本字符串中的某個字符作為分割符,實現(xiàn)對文本字符串的分割并以列表的形式返回分割后的文本字符串。

用法:re.split(pattern, dest_str, max_split, flags)

pattern:? 分割符

dest_str:? 要分割的文本字符串

max_split:? 最大分割數(shù)。默認為0表示無限制

flags:? 設(shè)置正則表達式匹配的方式。

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

十、貪婪模式和非貪婪模式

貪婪模式:在滿足正則規(guī)則的情況下盡可能多的匹配字符

非貪婪模式: 在滿足正則規(guī)則的情況下盡可能少的匹配字符

在python正則表達式的數(shù)量匹配字符中默認是貪婪模式,如果想將正則表達式的匹配變?yōu)榉秦澙纺J街恍柙跀?shù)量匹配字符的后面加上?如:"*",“+”,“?”,{min,max}

Python爬蟲基礎(chǔ)之正則表達式,Python程序設(shè)計,爬蟲,正則表達式,python,開發(fā)語言,pycharm,后端

@聲明:“山月潤無聲”博主知識水平有限,以上文章如有不妥之處,歡迎廣大IT愛好者指正,小弟定當虛心受教!文章來源地址http://www.zghlxwxcb.cn/news/detail-685175.html

到了這里,關(guān)于Python爬蟲基礎(chǔ)之正則表達式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python爬蟲之正則表達式解析實戰(zhàn)

    python爬蟲之正則表達式解析實戰(zhàn)

    先獲取網(wǎng)址,URL:https://www.xiachufang.com/category/40076/ 定位想要爬取的內(nèi)容 使用正則表達式爬取 導(dǎo)入模塊 指定URL UA偽裝(模擬瀏覽器) 發(fā)起請求,獲取當前頁面的數(shù)據(jù)內(nèi)容,并使用通用爬蟲爬取整個頁面 編譯正則表達式(提取想要的內(nèi)容) 解析請求內(nèi)容 指定圖片存儲路徑 持

    2024年02月08日
    瀏覽(19)
  • 【python】網(wǎng)絡(luò)爬蟲與信息提取--正則表達式

    【python】網(wǎng)絡(luò)爬蟲與信息提取--正則表達式

    ? ? ? ? 正則表達式是用來簡潔表達一組字符串的表達式。是通用的字符串表達框架,簡潔表達一組字符串的表達式,針對字符串表達“簡潔”和“特征”思想的工具,判斷某字符串的特征歸屬。 ? ? ? ? 用處:表達文本類型的特征;同時查找或替換一組字符串;匹配字符串

    2024年02月19日
    瀏覽(24)
  • 〖Python網(wǎng)絡(luò)爬蟲實戰(zhàn)⑨〗- 正則表達式基本原理

    訂閱:新手可以訂閱我的其他專欄。免費階段訂閱量1000+? ????????????????python項目實戰(zhàn) ????????????????Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費訂閱,在轉(zhuǎn)為付費專欄前訂閱本專欄的,可以免費訂閱付費專欄,

    2023年04月15日
    瀏覽(23)
  • python正則表達式-正則基礎(chǔ)

    目錄 一、任一元素 二、匹配特定的字符類別 ? ? ? ? ?1、d? w 三、多個元素 ? ? ? ? ?1、兩位元素 [][] ? ? ? ? ?2、* + ? ? ? ? ? ?3、重復(fù)次數(shù) {} ? ? ? ? ?4、位置匹配 ^ $ ? ? ? ? ?5、子表達式() ????????[]:1、[ab]?匹配a或b; ? ? ? ?2、[0-9]?匹配任意一個數(shù)

    2024年02月05日
    瀏覽(22)
  • Python學習筆記_基礎(chǔ)篇(八)_正則表達式

    Python學習筆記_基礎(chǔ)篇(八)_正則表達式

    1.1. 簡單介紹 正則表達式并不是Python的一部分。正則表達式是用于處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎,效率上可能不如str自帶的方法,但功能十分強大。得益于這一點,在提供了正則表達式的語言里,正則表達式的語法都是一樣的,區(qū)別只

    2024年02月12日
    瀏覽(112)
  • 正則表達式和爬蟲

    正則表達式和爬蟲

    目錄 一、正則表達式: ? ? ? ? 作用: 字符類(只匹配一個字符) ? ? ? ? ? ? ? ? 細節(jié) 預(yù)定義字符字符(只匹配一個字符) ? ? ? ? ? ? ? ? 細節(jié) 數(shù)量詞 二、爬蟲 ? ? ? ? Pattern ? ? ? ? Matcher ? ? ? ? ? ? ? ? 要點說明 ? ? ? ? ? ? ? ? 1、校驗字符串是否滿足規(guī)則

    2024年01月17日
    瀏覽(22)
  • 爬蟲之正則表達式

    爬蟲之正則表達式

    個人主頁:Lei寶啊? 愿所有美好如期而遇 概念: 正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),正則匹配是一個模糊的匹配(不是精確匹配) 如下四個方法經(jīng)常使用: match() search() findall() finditer() 匹配單個字符或數(shù)字:? 匹配 說明 . 匹配除換行符以外的任

    2024年02月20日
    瀏覽(24)
  • 006集 正則表達式 re 應(yīng)用實例—python基礎(chǔ)入門實例

    006集 正則表達式 re 應(yīng)用實例—python基礎(chǔ)入門實例

    正則表達式指預(yù)先定義好一個 “ 字符串模板 ” ,通過這個 “ 字符串模 板” 可以匹配、查找和替換那些匹配 “ 字符串模板 ” 的字符串。 Python的中 re 模塊,主要是用來處理正則表達式,還可以利用 re 模塊通過正則表達式來進行網(wǎng)頁數(shù)據(jù)的爬取和存儲。 正則表達式的英文

    2024年02月01日
    瀏覽(31)
  • Python字符串驗證與正則表達式【第23篇—python基礎(chǔ)】

    Python字符串驗證與正則表達式【第23篇—python基礎(chǔ)】

    隨著Python在數(shù)據(jù)處理和字符串操作方面的廣泛應(yīng)用,對字符串進行驗證以確保其僅包含字母變得愈發(fā)重要。在本文中,我們將深入探討Python中多種方法,用于檢查字符串是否只由字母組成,并且將關(guān)注這些方法的應(yīng)用場景以及它們的優(yōu)缺點。 在數(shù)據(jù)處理和文本挖掘中,對字符

    2024年01月17日
    瀏覽(62)
  • Python零基礎(chǔ)入門(六)——超詳細的字符串與正則表達式

    Python零基礎(chǔ)入門(六)——超詳細的字符串與正則表達式

    個人簡介:機電專業(yè)在讀研究生,CSDN內(nèi)容合伙人,博主個人首頁 Python入門專欄:《Python入門》歡迎閱讀,一起進步!?????? 碼字不易,如果覺得文章不錯或能幫助到你學習,可以點贊??收藏??評論??+關(guān)注哦!?????? 歡迎來到本系列教程的第六篇,之前的文章已經(jīng)介

    2024年02月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包