一天寫的比一天晚!這樣撐得過三十天嗎?﹝外面雨大的很恐怖!﹞
今晚花了將近兩小時在和正規式博鬥,首先是先找出能在正規式的pattern使用字串參數,
一開始以為只要這樣
reStr = "r'(<tr).*(</tr>)'"
targetTag = re.findall( reStr, data )
結果完全不理我!然後靠經驗改成這樣﹝不是很懂 format() 的功用,有時間再Google一
下﹞
reStr = "(<tr).*(</tr>)"
targetTag = re.findall( reStr.format(), data )
終於有東西了,但是結果卻只有 <tr 和 </tr> !裡面的東西咧?結果又嘗試了search、
compile、split、group...結果不是只找了一次,就是打死不給中間的內容,最後突然想到,該不會正規式有問題,結果改成這樣
reStr = "(<td)(.*)(>)(.*)(</td>)"
targetTag = re.findall( reStr.format(), data )
結果終於出現我想要的結果了!整理一下程式碼,明天可以繼續奮鬥了...
#! /usr/bin/env python
#-*- coding: utf-8 -*-
import urllib.request
import re
if __name__ == "__main__":
f = open('index.php', 'r' )
data = f.read()
f.close
targetTag = "td"
reStr = "(<"+ targetTag +")(.*)(>)(.*)(</"+ targetTag +">)"
reObj = re.compile( reStr.format() )
# reObj = re.compile( r'(<td)(.*)(>)(.*)(</td>)' )
targetTag = reObj.findall( data )
for x in targetTag:
print( x )
正規式不熟,python不熟,結果就是...慢慢磨囉!
以上,這種學習法真是緩慢又痛苦,真該好好的花時間把書從頭到尾K一遍,就像當時學C
一樣...