python爬蟲 貪婪模式和非貪婪模式舉例

2021-09-23 17:23:07 字數 965 閱讀 3802

import re
#貪婪模式

*是匹配0次或者多次,b被匹配到的時候,要匹配最大次數

#*只對b產生作用

pattern1=re.compile("ab*")

result1=pattern1.findall("ababbc")

print(result1)

#非貪婪模式,在匹配成功的前提下,更少的匹配

#因為?是對*進行修飾

pattern2=re.compile("ab*?")

result2=pattern2.findall("abbbc")

print(result2)

#因為非貪婪模式和貪婪模式必需是在匹配成功的前提下

#只要問號後面有東西,必須保證問號後面的要匹配到

pattern3=re.compile("ab*?c")

result3=pattern3.findall("abbbc")

print(result3)

str1=「aa

test1

bbtest2

cc」#貪婪模式匹配 .*要匹配最多的東西才結束

pattern4=re.compile(".*

")result4=pattern4.findall(str1)

print(result4)#['test1

bbtest2

']

#非貪婪模式匹配,第一次匹配成功就返回,

str2=「aa

test1

bbtest2

cc」

pattern5=re.compile(".*?

")result5=pattern5.findall(str2)

print(result5)

貪婪模式和非貪婪模式

1.什麼是正規表示式的貪婪與非貪婪匹配 如 string str abcaxc patter p ab c 貪婪匹配 正規表示式一般趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字串str,結果就是匹配到 abcaxc ab c 非貪婪匹配 就是匹配到結果就好,就少的匹配字元。如上面...

貪婪模式和非貪婪模式

正規表示式通常使用於查詢匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能預設是非貪婪 總是嘗試匹配盡可能多的字元 非貪婪模式剛好相反,總是嘗試匹配盡可能少的字元。例如,正規表示式 ab 如果用於查詢 abbbc 就會找到 abbb 如果使用非貪婪的數量詞 ab 就會找到 a 例如1 ...

python基礎 re模組匹配時貪婪和非貪婪模式

python貪婪和非貪婪 正規表示式通常用於在文字中查詢匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能是預設非貪婪 總是嘗試匹配盡可能多的字元 非貪婪則相反,總是嘗試匹配盡可能少的字元。在 後面加上?使貪婪變成非貪婪。s this is a number 234 235 22 42...