', ' ', conmment) 可是測(cè)試后發(fā)現(xiàn)CSS還在。找了很久,說要改成: ">

久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

python 正則明明是正確的但是卻無法匹配的原因

今天用python爬取一個(gè)汽車站,內(nèi)容里竟然包含了大量CSS(不得不說這個(gè)官網(wǎng)做的真是爛)去掉這些CSS這么寫:

conmment = re.sub(r'<style.*?</style>', ' ', conmment)

可是測(cè)試后發(fā)現(xiàn)CSS還在。找了很久,說要改成:

conmment = re.sub(r'<style[^>]*>.*?</style>', '', conmment)

可是還是不行,自己看了網(wǎng)頁(yè)很久,突然靈光一現(xiàn),應(yīng)該改成:

conmment = re.sub(r'<style.*?</style>', ' ', conmment, flags=re.DOTALL)

果然,這次成功了。你知道原因嗎?不知道的繼續(xù)往下看,知道的可以關(guān)閉了。

在 Python 的 re 模塊中,使用 re.DOTALL 標(biāo)志會(huì)改變點(diǎn)號(hào)(.)的行為。通常,點(diǎn)號(hào)會(huì)匹配除換行符外的所有字符。但是,當(dāng)你使用 re.DOTALL 標(biāo)志時(shí),點(diǎn)號(hào)會(huì)匹配包括換行符在內(nèi)的所有字符。這樣一來,你就可以使用一個(gè)點(diǎn)號(hào)來匹配一個(gè)多行的字符串。

在你的情況下,當(dāng)你使用 re.sub 進(jìn)行替換時(shí),如果你希望匹配的內(nèi)容包括換行符,那么就可以使用 re.DOTALL 標(biāo)志來確保點(diǎn)號(hào)可以匹配跨行的內(nèi)容。

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » python 正則明明是正確的但是卻無法匹配的原因

贊 (1) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞