真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python正則表達(dá)式的技巧有哪些

本篇內(nèi)容介紹了“python正則表達(dá)式的技巧有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

峨眉山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)

最小匹配

格式

量詞?

注:量詞有{n,m}、?、+、*

用處

在字符串中查找符合正則表達(dá)式規(guī)則的最短子字符串。

案例

現(xiàn)有字符串num = ”10-3*(20-10+(-10/5)27/3/3-(-100)/(10-35))",要提取括號(hào)中的內(nèi)容。

import re

num = '10-3*(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))+(-5*-6)'num2 = re.findall('\(.+?\)', num)num3 = re.findall('\(.+\)', num)print(num2)print(num3)out:['(20-10+(-10/5)', '(-100)', '(10-3*5)']['(20-10+(-10/5)*27/3/3-(-100)/(10-3*5))']

上述代碼中num2使用了最小匹配,而num3使用了默認(rèn)的最大匹配。

請(qǐng)注意num2的正則表達(dá)式:

.表示匹配除了換行符之外的所有字符

+表示一個(gè)或多個(gè)

?表示最小匹配,匹配后面第一個(gè))即返回結(jié)果。若沒(méi)有這個(gè)?會(huì)匹配到最后一個(gè))才返回結(jié)果。

分組

格式

(\w)

注:在正則表達(dá)式中一對(duì)括號(hào)包圍的內(nèi)容表示分組,正則表達(dá)式中可以有多個(gè)分組

用處

匹配字符串,只提取分組中的內(nèi)容,非分組的內(nèi)容舍棄不提取。

案例

str1 = '''
python
java
javascript
'''result1 = re.findall('<\w+>(\w+)<\w+>',str1)print(result1)result2 = re.findall('<(\w+)>\w+<\w+>',str1)print(result2)out:['python', 'java', 'javascript']['a', 'b', 'c']

從result1和result2提取內(nèi)容的不同可以看到分組的妙用,分組能指定提取符合正則表達(dá)式某一段的內(nèi)容。

分組隱藏

格式

(?:正則表達(dá)式)

注:在括號(hào)內(nèi)以?:開(kāi)頭的分組,匹配到的內(nèi)容會(huì)被隱藏。

另:分組隱藏和分組命名不能同時(shí)使用。

用處

當(dāng)有用數(shù)據(jù)和無(wú)用數(shù)據(jù)混在一起時(shí),只能先全取出來(lái),然后對(duì)無(wú)用數(shù)據(jù)做分組隱藏,把有用的數(shù)據(jù)對(duì)應(yīng)的正則表達(dá)式用()包起來(lái),這樣即可提取出有用數(shù)據(jù)。

案例

result1 = re.findall('1(\d)(\d)','167189')print(result1)result2 = re.findall('1(?:\d)(\d)','167189')print(result2)out:[('6', '7'), ('8', '9')]['7', '9']

分組命名

格式

(?P<名字>正則表達(dá)式)

注:?P<名稱>,英文書名號(hào)內(nèi)是分組的名稱。

用處

分組命名在有很多段分組時(shí)對(duì)不同的分組命名,便于使用,防止混淆。

案例

str1 = 'study python every day'ret = re.search('<(?P\w+)>(?P.*?)',str1)print(ret)print(ret.group('tag'))print(ret.group('name'))out:tag
study python every day

上述案例是一個(gè)簡(jiǎn)單的示范,只有2個(gè)分組。但實(shí)際爬蟲的時(shí)候經(jīng)常會(huì)遇到多達(dá)10個(gè)以上的分組。在分組數(shù)量多的時(shí)候很容易混淆數(shù)據(jù),若使用分組命名會(huì)非常方便,根據(jù)名字讀取對(duì)應(yīng)的數(shù)據(jù),提高了代碼可讀性。

“python正則表達(dá)式的技巧有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


當(dāng)前名稱:python正則表達(dá)式的技巧有哪些
網(wǎng)頁(yè)URL:
http://weahome.cn/article/ghijsp.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部