Python3 爬蟲 07 正規表示式(原子)

2022-01-30 11:37:32 字數 2928 閱讀 4627

原子是正規表示式的最基本的組成單位,而且在每個模式中最少包含乙個原子。原子是由所有那些未顯示指定為元字元的列印和非列印字元組成。

1.普通字元作為原子

普通字元是編寫正規表示式時最常見的原子了,包括所有的大寫和小寫字母字元、所有數字等。例如,a——z、a——z、0——9。

#-*- codingn:utf-8 -*-

import

repattern = 'lo'

string = "i love you"

#re.search()函式對整個字串搜尋,並返回第乙個匹配字串的match物件

result = re.search(pattern,string)

print("普通字元作為原子的結果:%s"%result)

執行結果

2.一些特殊字元和元字元作為原子

任何乙個符號都可以作為原子使用,但如果這個符號在正規表示式中有一些特殊意義,我們就必須使用轉義字元「\」取消它的特殊意義,將其變成乙個普通的原子。例如,所有標點符號以及一些其他符號,雙引號「」」、單引號「』」、「*」、「+」、「.」等,如果當原子就必須像\」、\』、\+和\.這樣使用。

#-*- codingn:utf-8 -*-

import

re#需要轉義

pattern = '\+'

string = "a+b=c"

#re.search()函式對整個字串搜尋,並返回第乙個匹配字串的match物件

result = re.search(pattern,string)

print("特殊字元作為原子的結果:%s"%result)

執行結果

3.一些非列印字元作為原子

所謂的非列印字元,是一些在字串中的格式控制符號,例如:\n回車及\t製表符號等。例如下表所示列出了正規表示式中常用的非列印字元及其含義。

#-*- codingn:utf-8 -*-

import

repattern = '\n'

string = """zhang

san"""

#re.search()函式對整個字串搜尋,並返回第乙個匹配字串的match物件

result = re.search(pattern,string)

print("非列印字元作為原子的結果:%s"%result)

4.使用「通用字元型別」作為原子

前面介紹的不管是列印字元還是非列印字元作為原子,都是乙個原子只能匹配乙個字元。而有時我們需要乙個原子可以匹配一類字元,例如,匹配所有數字不是乙個數字,匹配所有字母而不是乙個字母,這時就要使用「通用字元型別」了。

字母

意義

/w匹配任意乙個字母、數字或者下劃線

/w匹配除字母、數字和下劃線意外的任意乙個字元

/d匹配仍以乙個十進位制數

/d匹配除十進位制數意外的任意乙個其他字元

/s匹配除空白字元意外的任意乙個其他字元

/s匹配任意乙個空白字元

#-*- codingn:utf-8 -*-

import

repattern ='\who\w'

string = "wo shi who23"

#re.search()函式對整個字串搜尋,並返回第乙個匹配字串的match物件

result = re.search(pattern,string)

print("萬用字元作為原子的結果:%s"%result)

執行結果:

5.原子表

代表某一類的原子太多了,系統不能全都給提供出來,例如數字中的奇數(1、3、5、7、9、)、字母中的母音字母(a、e、i、o、u)等。所以就需要我們可以自己定義出特定的「類原子」,使用原子表「」就可以定義一組彼此地位平等的原子,且從原子表中僅選擇乙個原子進行匹配

在python中,原子表由表示,比如[xyz],就是乙個原子表,這個原子表中定義了3個原子,這3個原子的地位平等。

#-*- codingn:utf-8 -*-

import

repattern1 ='\wf[gj]\w'

pattern2 ='\wf[^gj]\w'

pattern3 ='\wf[gj]\w'

string = "abcdefgjikdlfk"

#re.search()函式對整個字串搜尋,並返回第乙個匹配字串的match物件

result1 = re.search(pattern1,string)

result2 = re.search(pattern2,string)

result3 = re.search(pattern3,string)

print("pattern1:%s"%result1)

print("pattern2:%s"%result2)

print("pattern3:%s"%result3)

執行結果:

python3爬蟲 正規表示式

正規表示式 首先要匯入re庫 其中常用的函式 compile函式 格式為re.complie pattern flags pattern 乙個字串形式的正規表示式 flags 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體引數為 re.i 忽略大小寫 re.l 表示特殊字符集 w,w,b,b,...

python3 爬蟲 正規表示式學習

常用匹配規則 re.match方法 從字串開頭開始匹配,一旦開頭不匹配,就會匹配失敗 import re content hello 1234567 world this is a regex demo print len content result re.match hello s d swor...

Python3爬蟲從零開始 正規表示式

正規表示式測試工具 例項1 match import re content hello 123 4567 world this is a regex demo print len content result re.match hello s d d d s d s w content print ...