參考小程序-》正則表達式

# 小程序-採用正則表達式匹配百度貼吧的圖片html

# 篩選數據正則表達式

# 匹配模塊 import re import urllib.request小程序

# 獲取並打開鏈接函數

def getHtml(url):url

    page = urllib.request.urlopen(url)htm

    html = page.read() return html圖片

# 定義篩選圖片的函數字符串

# pattern:正則表達式get

# string:要匹配的字符串string

# flags:控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等

# 獲取字符串中的全部匹配項

# pattern:正則表達式

# string:要匹配的字符串

"""

match() 決定 RE 是否在字符串剛開始的位置匹配 search() 掃描字符串,找到這個 RE 匹配的位置 findall() 找到 RE 匹配的全部子串,並把它們做爲一個列表返回 finditer() 找到 RE 匹配的全部子串,並把它們做爲一個迭代器返回

"""

# 匹配表達式書寫

# \s 匹配任何空白字符

# \S 匹配任何非空白字符

#\d 匹配任何十進制數;它至關於類 [0-9]。

#\D 匹配任何非數字字符;它至關於類 [^0-9]。

# \w 匹配任何字母數字字符;它至關於類 [a-zA-Z0-9_]。

# \W 匹配任何非字母數字字符;它至關於類 [^a-zA-Z0-9_]。

# * 並不匹配字母字符 "*";相反,它指定前一個字符能夠被匹配零次或更屢次,而不是隻有一次。

# 舉個例子,ca*t 將匹配 "ct" (0 個 "a" 字符), "cat" (1 個 "a"), "caaat" (3 個 "a" 字符)等等。

# 正則表達式一般在 Python 代碼中都是用這種 raw 字符串表示。

# 常規字符串 "ab*"

# raw字符串 r"ab*"

# 以下表達式匹配

#  1.首先填寫r

# 2.問號 ? 匹配一次或零次;你能夠認爲它用於標識某事物是可選的。

# 3.\section 要匹配的字符串

# r'src="(.+?\.jpg)"pic_ext'

def getImg(html):

    reg = r'src="(.+?\.jpg)" pic_ext'

    imgre = re.compile(reg)

    imglist = re.findall(imgre, html)

    return imglist

#打印結果

html = getHtml("http://tieba.baidu.com/p/2460150866")

result = getImg(html) print(result)

相關文章
相關標籤/搜索