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

Python3 正則表達(dá)式

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

Python3 正則表達(dá)式

正則表達(dá)式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。

Python 自1.5版本起增加了re 模塊,它提供 Perl 風(fēng)格的正則表達(dá)式模式。

re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。

compile 函數(shù)根據(jù)一個模式字符串和可選的標(biāo)志參數(shù)生成一個正則表達(dá)式對象。該對象擁有一系列方法用于正則表達(dá)式匹配和替換。

re 模塊也提供了與這些方法功能完全一致的函數(shù),這些函數(shù)使用一個模式字符串做為它們的第一個參數(shù)。

字符與字符類

特殊字符:.^$?+*{}|

以上特殊字符要想使用字面值,必須使用\進(jìn)行轉(zhuǎn)義

字符類
  • 包含在[]中的一個或者多個字符被稱為字符類,字符類在匹配時如果沒有指定量詞則只會匹配其中的一個。
  • 字符類內(nèi)可以指定范圍,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之間的任何一個字符
  • 左方括號后跟隨一個,表示否定一個字符類,比如[0-9]表示可以匹配一個任意非數(shù)字的字符。
  • 字符類內(nèi)部,除了\之外,其他特殊字符不再具備特殊意義,都表示字面值。放在第一個位置表示否定,放在其他位置表示本身,-放在中間表示范圍,放在字符類中的第一個字符,則表示-本身。
  • 字符類內(nèi)部可以使用速記法,比如\d \s \w
速記法
  • . 可以匹配除換行符之外的任何字符,如果有re.DOTALL標(biāo)志,則匹配任意字符包括換行
  • \d 匹配一個Unicode數(shù)字,如果帶re.ASCII,則匹配0-9
  • \D 匹配Unicode非數(shù)字
  • \s 匹配Unicode空白,如果帶有re.ASCII,則匹配\t\n\r\f\v中的一個
  • \S 匹配Unicode非空白
  • \w 匹配Unicode單詞字符,如果帶有re.ascii,則匹配[a-zA-Z0-9_]中的一個
  • \W匹配Unicode非單子字符

量詞

  • ? 匹配前面的字符0次或1次
    • 匹配前面的字符0次或多次
    • 匹配前面的字符1次或者多次
  • {m} 匹配前面表達(dá)式m次
  • {m,} 匹配前面表達(dá)式至少m次
  • {,n} 匹配前面的正則表達(dá)式最多n次
  • {m,n} 匹配前面的正則表達(dá)式至少m次,最多n次

注意點:
以上量詞都是貪婪模式,會盡可能多的匹配,如果要改為非貪婪模式,通過在量詞后面跟隨一個?來實現(xiàn)

組與捕獲

()的作用:
  • 捕獲()中正則表達(dá)式的內(nèi)容以備進(jìn)一步利用處理,可以通過在左括號后面跟隨?:來關(guān)閉這個括號的捕獲功能
  • 將正則表達(dá)式的一部分內(nèi)容進(jìn)行組合,以便使用量詞或者|反向引用前面()內(nèi)捕獲的內(nèi)容:
  • 通過組號反向引用
  • 每一個沒有使用?:的小括號都會分配一個組好,從1開始,從左到右遞增,可以通過\i引用前面()內(nèi)表
達(dá)式捕獲的內(nèi)容
  • 通過組名反向引用前面小括號內(nèi)捕獲的內(nèi)容
    可以通過在左括號后面跟隨?P,尖括號中放入組名來為一個組起一個別名,后面通過(?P=name)來引用 前面捕獲的內(nèi)容。如(? P\w+)\s+(?P=word)來匹配重復(fù)的單詞。

注意點:
反向引用不能放在字符類[]中使用。

斷言與標(biāo)記

斷言不會匹配任何文本,只是對斷言所在的文本施加某些約束

常用斷言:

  • \b匹配單詞的邊界,放在字符類[]中則表示backspace
  • \B匹配非單詞邊界,受ASCII標(biāo)記影響
  • \A 在起始處匹配
  • ^ 在起始處匹配,如果有MULTILINE標(biāo)志,則在每個換行符后匹配
  • \Z 在結(jié)尾處匹配
  • $ 在結(jié)尾處匹配,如果有MULTILINE標(biāo)志,則在每個換行符前匹配
  • (?=e) 正前瞻
  • (?!e) 負(fù)前瞻
  • (?<=e) 正回顧
  • (?<!e) 負(fù)回顧

條件匹配

(?(id)yes_exp|no_exp):對應(yīng)id的子表達(dá)式如果匹配到內(nèi)容,則這里匹配yes_exp,否則匹配no_exp

正則表達(dá)式的標(biāo)志

正則表達(dá)式的標(biāo)志有兩種使用方法

  • 通過給compile方法傳入標(biāo)志參數(shù),多個標(biāo)志使用|分割的方法,如re.compile(r"#[\da-f]{6}\b", re.IGNORECASE|re.MULTILINE)

  • 通過在正則表達(dá)式前面添加(?標(biāo)志)的方法給正則表達(dá)式添加標(biāo)志,如(?ms)#[\da-z]{6}\b
    常用的標(biāo)志

  • re.A或者re.ASCII, 使\b \B \s \S \w \W \d \D都假定字符串為假定字符串為ASCII

  • re.I或者re.IGNORECASE 使正則表達(dá)式忽略大小寫

  • re.M或者re.MULTILINE 多行匹配,使每個^在每個回車后,每個$在每個回車前匹配

  • re.S或者re.DOTALL 使.能匹配任意字符,包括回車

  • re.X或者re.VERBOSE 這樣可以在正則表達(dá)式跨越多行,也可以添加注釋,但是空白需要使用\s或者[ ]來表示,因為默認(rèn)的空白不再解釋。如:文章來源地址http://www.zghlxwxcb.cn/news/detail-421494.html

re.compile(r"""
          <img\s +)   #標(biāo)簽的開始
          [^>]*?  #不是src的屬性
          src=    #src屬性的開始
          (?:
          (?P<quote>["']) #左引號
          (?P<image_name>[^\1>]+?)    #圖片名字
          (?P=quote)  #右括號
          """,re.VERBOSE|re.IGNORECASE)

正則表達(dá)式處理字符串主要有四大功能

  • 匹配 查看一個字符串是否符合正則表達(dá)式的語法,一般返回true或者false
  • 獲取 正則表達(dá)式來提取字符串中符合要求的文本
  • 替換 查找字符串中符合正則表達(dá)式的文本,并用相應(yīng)的字符串替換
  • 分割 使用正則表達(dá)式對字符串進(jìn)行分割。

Python中re模塊使用正則表達(dá)式的兩種方法

  • 使用re.compile(r, f)方法生成正則表達(dá)式對象,然后調(diào)用正則表達(dá)式對象的相應(yīng)方法。這種做法的好處是生成正則對象之后可以多次使用。
  • re模塊中對正則表達(dá)式對象的每個對象方法都有一個對應(yīng)的模塊方法,唯一不同的是傳入的第一個參數(shù)是正則表達(dá)式字符串。此種方法適合于只使用一次的正則表達(dá)式。

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

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

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

相關(guān)文章

  • 機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)-專題1 Python正則表達(dá)式-【正則表達(dá)式入門-1】

    為了完成本關(guān)任務(wù),你需要掌握: 在 Python 中使用正則表達(dá)式; 最基礎(chǔ)正則表達(dá)式; 正則匹配函數(shù)。 在 Python 中使用正則表達(dá)式 正可謂人生苦短,我用 Python。Python 有個特點就是庫非常多,自然擁有正則匹配這種常見的庫,并且此庫已經(jīng)嵌入在 Python 標(biāo)準(zhǔn)庫中,使用起來非常

    2024年01月22日
    瀏覽(109)
  • python正則表達(dá)式-正則基礎(chǔ)

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

    2024年02月05日
    瀏覽(22)
  • js中如何在正則表達(dá)式中放入一個變量呢

    工作中碰見了這樣的業(yè)務(wù) 因為平常寫的正則 喜歡 直接 // 寫正則匹配的表達(dá)式 突然有一天 我的正則表達(dá)式要從一個 變量中 取到 跟往常的有點不用 假設(shè) var name = “zhao” var str = “hello world zhao aaa”; 想找到 zhao在字符串中位置 然后 zhao我又是定義了一個變量 才這樣的 var a

    2023年04月17日
    瀏覽(20)
  • PYthon正則表達(dá)式

    PYthon正則表達(dá)式

    正則表達(dá)式是對字符串(包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為“元字符”))操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。正則

    2024年01月17日
    瀏覽(66)
  • python 正則表達(dá)式

    python 正則表達(dá)式

    2024年01月17日
    瀏覽(30)
  • python之正則表達(dá)式

    目錄 正則表達(dá)式 python正則表達(dá)式方法? match search findall finditer compile 元字符匹配 元字符 量詞 貪婪匹配和惰性匹配 正則表達(dá)式的group 語法 案例? 正則表達(dá)式又稱規(guī)則表達(dá)式,是使用單個字符串來描述、匹配某個句法規(guī)則的字符串,常被用來檢索、替換那些符合某個模式的文

    2024年02月14日
    瀏覽(17)
  • Python正則表達(dá)式(小結(jié))

    正則表達(dá)式(regular expression,有時簡寫為RegEx 或 regex)就是用一組由字母和符號組成的“表達(dá)式”來描述一個特征,然后去驗證另一個“字符串”是否符合/匹配這個特征。 (1)驗證字符串是否符合指定特征,比如驗證郵件地址是否符合特定要求等; (2)用來查找字符串,

    2024年02月05日
    瀏覽(27)
  • Python 正則表達(dá)式轉(zhuǎn)義

    這篇文章是關(guān)于 Python 正則表達(dá)式轉(zhuǎn)義的。 此外,我們將介紹 Python 正則表達(dá)式轉(zhuǎn)義以及如何通過適當(dāng)?shù)氖纠a使用它,以及 Python 正則表達(dá)式的多種用途。 此外,Python 支持使用正則表達(dá)式(或正則表達(dá)式)對字符串進(jìn)行搜索和替換操作。 RegEx 是一種根據(jù)預(yù)定義模式匹配文

    2024年02月09日
    瀏覽(21)
  • 速通Python正則表達(dá)式

    幾乎所有語言中的正則表達(dá)式都有相類似的語法,python亦莫能外。 接下來直觀地看一下最常用的的三大函數(shù) 其中, re.match 要求從頭匹配; search 可以從任意位置匹配,但只返回第一個匹配的值的位置; findall 返回所有符合要求的值。 任意字符 . 匹配除了換行符之外的所有字

    2024年02月06日
    瀏覽(26)
  • python3 生成器表達(dá)式

    在 Python3 中,生成器表達(dá)式是一種語言結(jié)構(gòu),它可以快速地創(chuàng)建一個可迭代對象。生成器表達(dá)式類似于列表推導(dǎo)式,但使用圓括號而不是方括號,并且返回的是一個生成器對象而不是一個列表。 在 Python3 中,生成器表達(dá)式有兩種類型:生成器函數(shù)和生成器表達(dá)式。 生成器函

    2024年02月02日
    瀏覽(101)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包