python 正規表示式應用

2021-07-04 13:28:51 字數 2043 閱讀 9653

#!/usr/bin/env python

# -*- coding: utf-8 -*-

## 乙個小爬蟲

其中用的規則是"src=\"(.+\.jpg)\" pic_ext",可是這樣會出現問題:

如:網頁源**中會有這樣的串:

情況一:引用非jpg的標籤後連著乙個引用jpg的標籤

匹配出來的url:

" pic_ext="png" width="30" height="30">

pic_ext="jpeg"

height="350"

width="560">

pic_type="0"

class="bde_image"

src=""

pic_ext="bmp"

提取的url:

那怎麼處理第一種情況呢?

通過觀察我們發現,我們想要的其實是src=後面雙引號之間的內容,並且是兩個相互匹配的雙引號。也就是說,""之間是不應有其他的"的。所以,問題就很容易了,只要把.換成[^\"]匹配的是出來"之外的字元就行了。

改後,正則變成這樣:rule = r"src=\"([^\"]+?\.jpg)\" pic_ext"

現在就能輕鬆地抓取網頁上啦!

正規表示式貪婪與非貪婪模式:

python 正規表示式應用

同樣的概念也適用於正規表示式 在模式匹配發生之前,正規表示式模式必須編譯 成正規表示式物件。由於正規表示式在執行過程中將進行多次比較操作,因此強烈建議使 用預編譯。而且,既然正規表示式的編譯是必需的,那麼使用預編譯來提公升執行效能無疑 是明智之舉。re.compile 能夠提供此功能。一 使用 co...

正規表示式應用

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...

正規表示式(應用)

在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...