python正規表示式

2021-10-09 04:29:04 字數 4548 閱讀 4673

是文字處理的強大**,在網頁爬蟲中有大量的應用。

#matching string

import re

pattern1=

'cat'

pattern2=

'bird'

string=

"dog runs to cat"

print

(pattern1 in string)

print

(pattern2 in string)

用正規表示式匹配

#regular expression

import re

pattern1=

"cat"

pattern2=

"bird"

string=

"dog runs to cat"

print

(re.search(pattern1,string)

)print

(re.search(pattern2,string)

)#search在string中找pattern

返回

none

#multiple patterns(run or ran)

import re

pptn=r"r[au]n"

#前面有個r代表是正規表示式形式,代表多種情況

print

(re.search(ptn,

"dog runs to cat"

))

import re

print

(re.search(r"r[a-z]n"

,"dog runs to cat"))

print

(re.search(r"r[a-z]n"

,"dog runs to cat"))

print

(re.search(r"r[0-9]n"

,"dog r2ns to cat"))

print

(re.search(r"r[0-9a-z]n"

,"dog runs to cat"

))

none

#數字

##############

#\d:代表數字

print

(re.search(r"r\dn"

,"run r4n"))

#\d:不是數字形式

print

(re.search(r"r\dn"

,"run r4n"

))

#空白

##############

#\s:代表空白[\t\n\r\f\v]都代編空白符

print

(re.search(r"r\sn"

,"r\nn r4n"))

#\s:不是空格形式

print

(re.search(r"r\sn"

,"r\nn r4n"

))

#所有字母數字和」_「

##############

#\w:代表[a-za-z0-9_]

print

(re.search(r"r\wn"

,"r\nn r4n"))

#\w:不是w的形式

print

(re.search(r"r\wn"

,"r\nn r4n"

))

#空白字元

##############

#\b:empty string (在單詞的開始或結尾)

print

(re.search(r"\bruns\b"

,"dog runs to cat"))

#\b:不是b的形式,即前後不是空格

print

(re.search(r"\bruns\b"

,"dog runs to cat"))

#不用管是否貼近文字

print

(re.search(r"\bruns \b"

,"dog runs to cat"))

#只有貼著文字的空白符才可以

none

none

#匹配\:\\

#.:可以匹配任何除了\n的東西

#句尾句首

############

#^:匹配句首

print

(re.search(r"^dog"

,"dog runs to cat"))

#$:匹配句尾

print

(re.search(r"cat$"

,"dog runs to cat"

))

#是否

###############

#?:may or may not occur

print

(re.search(r"mon(day)?"

,"monday"))

print

(re.search(r"mon(day)?"

,"mon"

))

#多行匹配

string=

"""dog runs to cat.

i run to dog.

"""print

(re.search(r"^i"

,string)

)print

(re.search(r"^i"

,string,flags=re.m)

)#多行匹配,可以去找下一行的首

none

#+:1或多次

#*0或多次

#可選次數出現n,m次

print

(re.search(r"ab"

,"a"))

print

(re.search(r"ab"

,"abbbbb"

))

none

#group,分批次匹配

match=re.search(r"(\d+),date:(.+)"

,"id:021523,date:feb/12/2017"

)print

(match.group())

print

(match.group(1)

)print

(match.group(2)

)

021523,date:feb/12/2017

021523

feb/12/2017

#group

match=re.search(r"(?p\d+),date:(?p.+)"

,"id:021523,date:feb/12/2017"

)#把組加入名字方便區分?p

print

(match.group(

'id'))

print

(match.group(

'date'))

021523

feb/12/

2017

#尋找所有匹配

#findall

print

(re.findall(r"r[ua]n"

,"run ran ren"))

#|:代表or

print

(re.findall(r"(run|ran)"

,"run ran ren"))

print

(re.findall(r"r(u|r)n"

,"run ran ren"

))

[『run』, 『ran』]

[『run』, 『ran』]

[『u』, 『a』]

#替換

#re.sub() replace

print

(re.sub(r"r[au]ns"

,"catches"

,"dog runs to cat"

))

dog catches to cat

#fenlie

print

(re.split(r"[,;\.]"

,"a;b,c.d;e"))

#按左邊形式拆分

[『a』, 『b』, 『c』, 『d』, 『e』]

compiled_re=re.

compile

(r"r[ua]n"

)#先編譯要匹配的東西,在去匹配

print

(compiled_re.search(

"dog runs to cat"

))

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...