久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python中級----正則表達式進階

 天選小丑 2022-10-08 發(fā)布于廣西

重磅干貨,,第一時間送達

| 1. 元字符(Metacharacters)

元字符使正則表達式比普通的字符串方法更強大,,它們允許您創(chuàng)建正則表達式來表示 <元音的一個或多個重復>等概念,。

如果您想創(chuàng)建一個與字面元字符(如 “ ”)匹配的正則表達式(regex),元字符的存在會帶來問題,。您可以通過在元字符前面防止反斜杠來轉義(逃逸)元字符來做到這一點,。然而,這可能會導致問題,,因為反斜杠在普通Python字符串也具有轉義功能,。這可能意味著連續(xù)放置三到四個反斜杠來完成所有轉義。

Tips : 為了避免這種情況,,您可以使用原始字符串,,這是一個前面有一個< r >的普通字符串。我們在上一篇《python中級----正則表達式入門》中看到了原始字符串的使用,。

圖片

| 2. 元字符.(Dot)

我們來接觸的第一個元字符是< >,。它與除新行以外的任何字符相匹配。值得注意的是它只能匹配單個字符,。

Example:

import re
pattern = r'gr.y'
if re.match(pattern, 'grey'): print('Match 1')
if re.match(pattern, 'gray'): print('Match 2')
if re.match(pattern, 'blue'): print('Match 3')# Match 1# Match 2

圖片

| 3. 元字符^ && $(開始和結束)

接下來的兩個元字符是>>,。這兩個字符分別匹配字符串的開始結束

Example:

import re
pattern = r'^gr.y$'
if re.match(pattern, 'grey'): print('Match 1')
if re.match(pattern, 'gray'): print('Match 2')
if re.match(pattern, 'stingray'):    print('Match 3')

Tips : 模式< ^gr.y$ >意味著字符串應該以gr開頭,,然后跟隨除換行符以外的任何單個字符,,并以y結尾。

圖片

| 4. 字符類(Character Classes)

字符類提供了一種僅匹配特定字符集之一的方法,。字符類是通過將其匹配的字符放在方括號( [ ] )來創(chuàng)建的,。

Example:

import re
pattern = r'[aeiou]'
if re.search(pattern, 'grey'): print('Match 1')
if re.search(pattern, 'qwertyuiop'): print('Match 2')
if re.search(pattern, 'rhythm myths'): print('Match 3')

Tips : search()函數(shù)中的模式[aeiou]可以匹配包含其中任意一個字符的字符串。


字符類也可以匹配字符范圍

Some Example:

  • [a-z]匹配任何小寫字母字符

  • [G-P]匹配從G到P的任何大寫字符

  • [0-9]匹配任何數(shù)字

  • 多個范圍可以包含在一個類中,。例如[A-Za-z]匹配任何字母

Example:

import re
pattern = r'[A-Z][A-Z][0-9]'
if re.search(pattern, 'LS8'): print('Match 1')
if re.search(pattern, 'E3'): print('Match 2')
if re.search(pattern, '1ab'):    print('Match 3')

Tips : 上面的實例中模式匹配包含兩個大寫字母后跟一個數(shù)字的字符串,。

另一個重要內容:

在字符類的開頭放置一個>以反轉它。這會導致它與包含的字符以外的任何字符匹配,。其他元字符如>>不具備特殊的含義,,>也沒有意義,除非他是字符類中的第一個字符,。

Example:

import re
pattern = r'[^A-Z]'
if re.search(pattern, 'this is all quiet'): print('Match 1')
if re.search(pattern, 'AbCdEfG123'): print('Match 2')
if re.search(pattern, 'THISISALLSHOUTING'):    print('Match 3')

Tips : 模式[^A-Z]中不應該包括大寫字符串,。請注意,^應該包括在括號內,,以反轉字符類,。

圖片

| 5. 更多元字符

更多的元字符是< >、< >,、< >,、< >和< >。

以上內容指定了重復次數(shù),。

  • 元字符>的意思是匹配前一件事情匹配零次或多次,。它試圖盡可能多地匹配重復(貪婪模式),'前一件事情'可以是單個字符,、字符類或者一組字符,。

Example:

import re
pattern = r'egg(spam)*'
if re.match(pattern, 'egg'): print('Match 1')
if re.match(pattern, 'eggspamspamegg'): print('Match 2')
if re.match(pattern, 'spam'): print('Match 3')# Match 1# Match 2

Tips : 上面的示例匹配以egg開頭,后面跟著零個或多個spam的字符串,。


  • 元字符> 與 >非常相似,,只是它意味著一次或多次

Example:

import re
pattern = r'g+'
if re.match(pattern, 'g'): print('Match 1')
if re.match(pattern, 'gggggggggggggg'): print('Match 2')
if re.match(pattern, 'abc'): print('Match 3')# Match 1# Match 2

  • 元字符< > 意味著零次或一次,。

Example:

import re
pattern = r'ice(-)?cream'
if re.match(pattern, 'ice-cream'): print('Match 1')
if re.match(pattern, 'icecream'): print('Match 2')
if re.match(pattern, 'sausages'): print('Match 3')
if re.match(pattern, 'ice--ice'): print('Match 4')

圖片

| 6. 大括號(Curly Braces)

大括號可用于表示兩個數(shù)字之間的重復次數(shù),。正則表達式{x,y}的意思是'重復x次或y次'。因此,,{0,1} > 和 >是一回事,。值得一提的是如果第一個數(shù)字缺失,會自動用0填補,如果缺少第二個數(shù)字,,則將其取為無窮大,。

Example:

import re
pattern = r'9{1,3}$'
if re.match(pattern, '9'): print('Match 1')
if re.match(pattern, '999'): print('Match 2')
if re.match(pattern, '9999'): print('Match 3')

Tips : '9{1,3}$'可以匹配1到3個9的字符串。

圖片

| 7. 寫在最后

本節(jié)給大家介紹了Python中非常有用的正則表達式進階內容,,如果您耐心看完了本篇,,您應該掌握了re模塊以及充分理解了元字符,下一篇我們會說明更加有用的組和特別序列以及一個實戰(zhàn)練習---郵件提取,。勤能補拙是良訓,,希望大家還是動手做一做,有問題可以私信我,,歡迎交流和提出您的寶貴意見,。

勘誤:

由于我自己也不是資深編程高手,在創(chuàng)作此內容時盡管已經力求精準,,查閱了諸多資料,,還是難保有所疏漏,如果各位發(fā)現(xiàn)有誤可以公眾號內留言,,歡迎指正。

你要偷偷學Python,,然后驚艷所有人,。

圖片


    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多