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

速通Python正則表達(dá)式

這篇具有很好參考價(jià)值的文章主要介紹了速通Python正則表達(dá)式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

幾乎所有語(yǔ)言中的正則表達(dá)式都有相類(lèi)似的語(yǔ)法,python亦莫能外。

快速入門(mén)

#后續(xù)代碼均默認(rèn)導(dǎo)入re,且使用test
import re
test = '''
`[]`表示一個(gè)字符集合,在匹配時(shí)可以匹配集合中的任意值。例如`[abc]`可以匹配`asdzxc`中的`a`和`c`。
通過(guò)`-`可以表示某個(gè)范圍,例如`[a0-9]`表示匹配`a`和數(shù)字。
在`[]`中,特殊字符`+*()`將失去意義,會(huì)以普通的字符形式出現(xiàn)。而`^`將表示`非`,使用`^`之后將忽略對(duì)`[]`中的值的匹配。
'''

接下來(lái)直觀地看一下最常用的的三大函數(shù)

>>> print(re.match(r'[0-9]',test))
None
>>> re.search(r'[0-9]',test)
<re.Match object; span=(81, 82), match='0'>
>>> test[81:82]
'0' #說(shuō)明search匹配到了0
>>> re.findall(r'[0-9]',test)
['0', '9']

其中,re.match要求從頭匹配;search可以從任意位置匹配,但只返回第一個(gè)匹配的值的位置;findall返回所有符合要求的值。

匹配格式

任意字符

  • . 匹配除了換行符之外的所有字符,在DOTALL模式下包括換行符

開(kāi)頭結(jié)尾符號(hào)

  • ^ 匹配字符串的開(kāi)頭,在MULTILIME模式下為行開(kāi)頭
  • $ 匹配字符串結(jié)尾,在MULTILIME模式下匹配行結(jié)尾

后置修飾符,針對(duì)修飾符前面的正則表達(dá)式進(jìn)行匹配

  • * 匹配0到任意次重復(fù),例如a*b可以匹配bab,aab等等
  • + 匹配1到任意次重復(fù),例如a*b不可匹配b,但可匹配ab,aab等等
  • ? 匹配0或1次,例如a?b只能匹配aaaab中的ab
  • {m} 匹配m次,而且不可更改。例如a{2}只能匹配aa
  • {m,n} 匹配m到n次重復(fù),且盡可能多,例如a{2,4}可以匹配aa,aaa,aaaa

此外,?可以修飾其他后置修飾符,表示非貪婪形式,例如a{2,4}將盡可能少地匹配出現(xiàn)的字符。

或運(yùn)算符|可以連接兩個(gè)正則表達(dá)式,例如A|B可以匹配A或者B。

[]表達(dá)式

[]表示一個(gè)字符集合,在匹配時(shí)可以匹配集合中的任意值。例如[abc]可以匹配asdzxc中的ac。

通過(guò)-可以表示某個(gè)范圍,例如[a0-9]表示匹配a和數(shù)字。

[]中,特殊字符+*()將失去意義,會(huì)以普通的字符形式出現(xiàn)。而^將表示,使用^之后將忽略對(duì)[]中的值的匹配。

轉(zhuǎn)義字符

除了Python中的標(biāo)準(zhǔn)轉(zhuǎn)義字符之外,正則表達(dá)式還提供了一些其他含義的轉(zhuǎn)義字符。

小寫(xiě) 匹配內(nèi)容 大寫(xiě) 匹配內(nèi)容
\w 數(shù)字字母下劃線 \W 非數(shù)字字母下劃線
\s 空白字符 \S 非空白字符
\d 數(shù)字 \D 非數(shù)字
\A 字符開(kāi)始
\z 字符結(jié)束 \Z 只匹配到換行前的結(jié)束字符
\b 單詞便捷 \B 非單詞便捷

正則表達(dá)式標(biāo)簽:

re.match等函數(shù)的輸入?yún)?shù)為

re.match(pattern, string, flags=0)

其中,pattern即為將要匹配的模式;string為待匹配字符串,flag則是正則表達(dá)式的標(biāo)簽,起到一些其他的作用,可選參數(shù)如下

模式 簡(jiǎn)寫(xiě) 說(shuō)明
re.ASCII re.A 只匹配ASCII
re.UNICODE re.U 根據(jù)Unicode解析字符(默認(rèn))
re.IGNORECASE re.I 對(duì)大小寫(xiě)不敏感
re.LOCALE re.L 由當(dāng)前語(yǔ)言決定\w, \W, \b, \B以及大小寫(xiě)匹配
re.MULTILINE re.M 多行匹配
re.DOTALL re.S 匹配包括換行在內(nèi)的所有字符
re.VERBOSE re.X 認(rèn)為#后面的是注釋
re.TEMPLATE re.T 禁用回溯
re.DEBUG 顯示編譯時(shí)的debug信息

Pattern

通過(guò)re.compile可以將待匹配字符串編譯為正則對(duì)象Pattern,可更加方便地進(jìn)行調(diào)用。例如

>>> p = re.compile(r'[0-9]')
>>> p.findall(test)
['0', '9']
>>> p.pattern       #pattern屬性即編譯前的字符串形式
'[0-9]'

Pattern對(duì)象中的成員方法可以和re模塊下的函數(shù)實(shí)現(xiàn)相同的功能。記pat為正則字符串,pre.compile(pat)編譯而成的正則對(duì)象,則就findall這個(gè)函數(shù)而言,re.findall(pat,test)就等價(jià)于p.findall(test)

除了findall之外,下表中的函數(shù)均支持這種轉(zhuǎn)換文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739131.html

  • search:返回第一個(gè)匹配位置的對(duì)象;如無(wú)匹配返回None
  • match:要求從頭匹配,其余和search相同
  • fullmatch:若整個(gè)test與正則表達(dá)式匹配則返回匹配對(duì)象,否則返回None
  • findall:返回所有匹配內(nèi)容的列表
  • finditer:返回所有匹配位置的列表
  • spilt:通過(guò)正則表達(dá)式對(duì)字符串進(jìn)行分割
  • sub:用于字符串的替代
  • subn:與sub()相同,但是返回一個(gè)元組
  • escape:對(duì)正則表達(dá)式中的特殊字符進(jìn)行轉(zhuǎn)義

到了這里,關(guān)于速通Python正則表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Python-re模塊-正則表達(dá)式模塊常用方法

    Python的re模塊提供了正則表達(dá)式的功能,可以用來(lái)進(jìn)行高級(jí)的字符串匹配和處理。re模塊的主要功能包括: 編譯正則表達(dá)式 - 使用re.compile()可以編譯正則表達(dá)式字符串,生成正則表達(dá)式對(duì)象。 匹配字符串 - 使用正則表達(dá)式對(duì)象的match()、search()、findall()等方法可以在字符串進(jìn)行匹配

    2024年02月14日
    瀏覽(32)
  • 006集 正則表達(dá)式 re 應(yīng)用實(shí)例—python基礎(chǔ)入門(mén)實(shí)例

    006集 正則表達(dá)式 re 應(yīng)用實(shí)例—python基礎(chǔ)入門(mén)實(shí)例

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

    2024年02月01日
    瀏覽(31)
  • python re.findall和re.search同樣的正則表達(dá)式,為什么規(guī)則不一樣??

    今天遇到一個(gè)問(wèn)題,在使用python的re.findall和re.search的過(guò)程中,發(fā)現(xiàn)一個(gè)奇怪的事情,同樣的表達(dá)式,兩者的表現(xiàn)卻不一樣,例如下述代碼: res1是我所希望的結(jié)果,然后查了一段時(shí)間的原因,發(fā)現(xiàn)二者是在使用捕獲分組(xxx)和非捕獲分組(?:xxx)有區(qū)別,re.search使用的是非捕獲方

    2024年02月16日
    瀏覽(26)
  • 【100天精通python】Day23:正則表達(dá)式,基本語(yǔ)法與re模塊詳解示例

    ? 目錄 ?專(zhuān)欄導(dǎo)讀? 1?正則表達(dá)式概述 2 正則表達(dá)式語(yǔ)法 2.1?正則表達(dá)式語(yǔ)法元素

    2024年02月14日
    瀏覽(50)
  • re --- 正則表達(dá)式操作

    模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字節(jié)串 (bytes)。 但是,Unicode 字符串與 8 位字節(jié)串不能混用:也就是說(shuō),不能用字節(jié)串模式匹配 Unicode 字符串,反之亦然;同理,替換操作時(shí),替換字符串的類(lèi)型也必須與所用的模式和搜索字符串的類(lèi)型一致。

    2024年02月08日
    瀏覽(26)
  • 正則表達(dá)式 re模塊

    正則表達(dá)式: 一種使用表達(dá)式的方式 對(duì)字符串進(jìn)行匹配的語(yǔ)法規(guī)則? ?可以在如下網(wǎng)站中測(cè)試正則表達(dá)式 在線正則表達(dá)式測(cè)試 (oschina.net) ①元字符: .????????? 匹配除換?符以外的任意字符 w? ? ? ?匹配字?或數(shù)字或下劃線 s????????匹配任意的空?符 d ?????

    2024年02月06日
    瀏覽(19)
  • 【從零學(xué)習(xí)python 】63.正則表達(dá)式中的re.Match類(lèi)及其屬性和方法介紹

    當(dāng)我們調(diào)用 re.match 方法、 re.search 方法,或者對(duì) re.finditer 方法的結(jié)果進(jìn)行迭代時(shí),拿到的數(shù)據(jù)類(lèi)型都是 re.Match 對(duì)象。 這個(gè)類(lèi)里定義了相關(guān)的屬性,可以直接讓我們來(lái)使用。 屬性和方法 說(shuō)明 pos 搜索的開(kāi)始位置 endpos 搜索的結(jié)束位置 string 搜索的字符串 re 當(dāng)前使用的正則表達(dá)

    2024年02月11日
    瀏覽(40)
  • 正則表達(dá)式 re庫(kù)的使用

    模式 描述 ^ 匹配 字符串的開(kāi)始 w 匹配 字母數(shù)字及下劃線 W 匹配 非 字母數(shù)字及下劃線 s 匹配 任意空白字符,即空格 S 匹配 任意 非空 字符 d 匹配 任意數(shù)字,等價(jià)于[0-9], d+ 表示匹配多個(gè)數(shù)字 D 匹配 任意 非 數(shù)字 A 匹配字符串開(kāi)始 Z 匹配字符串結(jié)束,如果是存在換行,

    2024年02月10日
    瀏覽(59)
  • 8.網(wǎng)絡(luò)爬蟲(chóng)—正則表達(dá)式RE實(shí)戰(zhàn)

    8.網(wǎng)絡(luò)爬蟲(chóng)—正則表達(dá)式RE實(shí)戰(zhàn)

    前言 : ??????個(gè)人簡(jiǎn)介:以山河作禮。 ??????:Python領(lǐng)域新星創(chuàng)作者,CSDN實(shí)力新星認(rèn)證 ??????此專(zhuān)欄文章是專(zhuān)門(mén)針對(duì)網(wǎng)絡(luò)爬蟲(chóng)基礎(chǔ),歡迎免費(fèi)訂閱! ?????第一篇文章《1.認(rèn)識(shí)網(wǎng)絡(luò)爬蟲(chóng)》獲得 全站熱榜第一 ,python 領(lǐng)域熱榜第一 , 第四篇文章《4.網(wǎng)絡(luò)爬蟲(chóng)—

    2023年04月08日
    瀏覽(18)
  • Python re.findall()中的正則表達(dá)式包含多個(gè)括號(hào)時(shí)的返回值——包含元組的列表

    當(dāng) re.findall() 中的正則表達(dá)式包含多個(gè)括號(hào)時(shí),返回值是一個(gè)列表,其中每個(gè)元素都是一個(gè)元組。這個(gè)元組的長(zhǎng)度與正則表達(dá)式中括號(hào)的數(shù)量相同,元組中的每個(gè)元素都是與相應(yīng)括號(hào)中的模式匹配的文本。 輸出:

    2024年02月19日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包