我正在寫找到所有的指向主辦的photobucket在phpBB論壇數據庫愚蠢的照片,並將其傳遞到下載管理器(在我的情況下免費下載管理器)的URL短的Python腳本的正則表達式爲了將圖像保存在本地計算機,然後將它們移動另一臺主機上(現在的photobucket開始要求每年訂閱其他網站嵌入在其服務器上託管的圖片)。我已經成功地使用搜索與lookarounds正則表達式的所有照片,當我測試了我的正則表達式與正則表達式搜索支持兩個文本編輯器,我發現我想要的東西,但在我的腳本它給了我麻煩。故障可以用Python
import re
import os
main_path = input("Enter a path to the input file:")
with open(main_path, 'r', encoding="utf8") as file:
file_cont = file.read()
pattern = re.compile(r'(?!(<IMG src=""))http:\/\/i[0-9][0-9][0-9]\.photobucket\.com\/albums\/[^\/]*\/[^\/]*\/[^\/]*(?=("">))')
findings = pattern.findall(file_cont)
for finding in findings:
print(finding)
os.system("pause")
我試圖調試它去掉部分下載並打印的所有比賽,我得到的(''
,'"">'
),而不是網址類似一長串這一個:http://i774.photobucket.com/albums/myalbum/Emi998/mypicture.jpg 我哪裏錯了?
Python的正則表達式引擎是他們可能不同。我建議你用[regex101]測試它(http://www.regex101.com),其中 – TemporalWolf
您在其他測試系統,它的工作是正確的,你可以切換到蟒蛇,regex101在Python模式未能匹配字符串。我將來會使用它。 –