python 正規表示式(re)小結

2021-10-04 20:19:08 字數 2604 閱讀 2971

個人筆記。

python的正規表示式包括以下方法:

match(pattern,string,flag)

search(pattern,string,flag)

span()

group(n)

groups()

compile(string)

findall(string)

sub(pattern,repl,string)

1.flag可以是re.m或者re.i等,後者忽略大小寫,前者是換行模式,re.m舉例:

str="i am a boy\nyou are a girl"

print re.search(

"\w+$"

,s2,re.m)

.group(

)# 結果:boy

print re.search(

"\w+$"

,s2)

.group(

)# 結果:girl

2.match和search返回的都是match物件,都只返回匹配成功的乙個結果,其中match從開頭開始匹配,

search則無此限制。在獲取匹配後的串前,應習慣加上是否is

none的判斷

3.要想獲取匹配後的字串的start point,end point,則用span(

),舉例:

print re.search(

"\w+$"

,s2,re.m)

.span(

)# 結果:(7, 10)

4.想要獲取匹配後的字串值,則用group(

)或者group(0)

5.想要獲取匹配後的某一組字串值,則用group(n)

,n>=

1,4和5舉例:

s3 =

"computer123cpu"

print re.search(

"([a-z]+)123([a-z]+)"

,s3)

.group(

)# computer123cpu

print re.search(

"([a-z]+)123([a-z]+)"

,s3)

.group(0)

# computer123cpu

print re.search(

"([a-z]+)123([a-z]+)"

,s3)

.groups(

)# ("computer","cpu")

print re.search(

"([a-z]+)123([a-z]+)"

,s3)

.group(1)

# computer

print re.search(

"([a-z]+)123([a-z]+)"

,s3)

.group(2)

# cpu

6.可以使用re.

compile

(pattern)將匹配規則轉化成pattern格式,然後使用match或者search或者findall

7.findall返回匹配結果的列表,舉例:

s3 =

"computer123cpu"

print re.findall(

"([a-z]+)123([a-z]+)"

,s3)

# [('computer', 'cpu')]

print re.findall(

"[a-z]+123[a-z]+"

,s3)

# ['computer123cpu']

print re.findall(

"[a-z]+"

,s3)

# ['computer', 'cpu']

8.常用正規表示式規則符號:

. 常用於匹配除了換行符外的任一字元

a+>=

1個a a? 0

|1個a

a*>=

0個a [0-

9] 從0到9任一數字

[a-z] 從a到z的任一字元

[abc] a或b或c(乙個)

[^abc] 非a或b或c(乙個)

^a 以a開頭

b$ 以b結尾

a n個a

\d 乙個數字:0123456789

\d 乙個非十進位制的任意字元 =[^

0-9]

\w a-z|a-z|0-

9|_ (.

*?) 非貪婪,精準匹配 (.

*) 貪婪,非精準匹配

最後兩個的舉例:

str="elephant is big animal"

pattern1 = re.

compile

("elephant (.*?) .*"

) pattern2 = re.

compile

("elephant (.*) .*"

)print pattern1.search(

str)

.group(1)

# is

print pattern2.search(

str)

.group(1)

# is big

python 正規表示式 re

match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...

python正規表示式 re

re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...

python正規表示式(re)

在python中re模組用於對正規表示式 regular expression 的支援。正規表示式是可以匹配文字片段的模式。一 正規表示式的書寫 1 萬用字元 點 可以匹配任何字元 除了換行符 如 ike 可以匹配 bike like 等 2 對特殊字元進行轉義 在正規表示式中如果是引用特殊字元作為...