python中從大字串裡擷取小字串
阿新 • • 發佈:2019-02-07
以一例題說明:分別用了for迴圈和while迴圈兩種方式
要尋找的大字串:
#coding:utf-8 string='<div class="item-list ni-list"><ul><li class="first"><a href="http://www.tepintehui.com/detail/57185?ce" title="明星同款| 鍾基歐巴穿的小髒鞋5折辣!" ><span>明星同款| 鍾基歐巴穿的小髒鞋5折辣!</span></a></li><li><a href="http://www.tepintehui.com/detail/56847?ce" title="裝逼| 你們見過凌晨四點鐘的洛杉磯嗎?" ><span>裝逼| 你們見過凌晨四點鐘的洛杉磯嗎?</span></a></li><li ><a href="http://www.tepintehui.com/detail/57127?ce" title="反人類| 世界上最乾淨的紙竟然是黃色的!" ><span>反人類| 世界上最乾淨的紙竟然是黃色的</span></a></li><li><a href="http://www.tepintehui.com/detail/57120?ce" title="科普| 吃了避孕藥之後懷的孩子能要嗎?" ><span>科普| 吃了避孕藥之後懷的孩子能要嗎?</span></a></li><li><a href="http://www.tepintehui.com/detail/57125?ce" title="真假| 9年義務升為12年制,是要取消高考嗎" ><span>真假| 9年義務升為12年制,是要取消高考嗎</span></a></li><li><a href="http://www.tepintehui.com/detail/57124?ce" title="土豪| 揭祕迪士尼見不得光的33號俱樂部" ><span>土豪| 揭祕迪士尼見不得光的33號俱樂部</span></a></li><li ><a href="http://www.tepintehui.com/detail/41008?ce" title="吐槽| 男人單身太久會沒感覺?" ><span>吐槽| 男人單身太久會沒感覺?</span></a></li><li ><a href="http://www.tepintehui.com/detail/23488?ce" title="冷知識| 為什麼鏡子是左右顛倒不是上下呢" ><span>冷知識| 為什麼鏡子是左右顛倒不是上下呢</span></a></li><li ><a href="http://www.tepintehui.com/detail/37213?ce" title="新玩法| 這年頭情侶之間種草莓已經out了!" ><span>新玩法| 這年頭情侶之間種草莓已經out了!</span></a></li><li ><a href="http://www.tepintehui.com/detail/11411?ce" title="四壁| 老美說鳳姐把范冰冰秒成渣,你怎麼看" ><span>四壁| 老美說鳳姐把范冰冰秒成渣,你怎麼看</span></a></li><li ><a href="http://www.tepintehui.com/detail/37456?ce" title="憑什麼| 個人挖墓是盜墓,國家挖是考古?" ><span>憑什麼| 個人挖墓是盜墓,國家挖是考古?</span></a></li><li ><a href="http://www.tepintehui.com/detail/40706?ce" title="福利| 要知道加這個群這麼爽!我早進了" ><span>福利| 要知道加這個群這麼爽!我早進了</span></a></li></ul></div>'
for迴圈:
while迴圈:#定義兩個變數:分別表示開始查詢的字串和結束的字串 #使用find函式查詢開始擷取的字串 start_str='http' s=string.find(start_str) #找到結束位置的字元 end_str='?ce' e=string.find(end_str,s,len(string)) count=string.count('http') for x in range(0,count): str = string[s:e + len(end_str)] print(str) #到最後可以不填end # s=string.find(start_str,e+len(end_str),len(string)) s = string.find(start_str, e + len(end_str)) e=string.find(end_str,s) str=string[s:e+len(end_str)]
#定義兩個變數:分別表示開始查詢的字串和結束的字串 start_string='http' end_string='?ce' #先找第一個開始位置 start=string.find(start_string) #只要start不等於-1,說明找到了http while start!=-1: #找結束的位置 end=string.find(end_string,start) #擷取字串 結束位置=結束字串的開始位置+結束字串的長度 sub_str=string[start:end+len(end_string)] print(sub_str) #找下一個開始的位置 #如果沒有下一個開始的位置,就相當於寫了一句start=-1,while迴圈的條件不成立,結束迴圈 start=string.find(start_string,end)