我正在嘗試在抓取維基百科時使用正則運算式來排除歧義頁面。我四處尋找有關使用負前瞻的提示,但似乎無法使其發揮作用。我想我錯過了一些關于它使用的基本知識,但到目前為止我完全一無所知。有人可以指出我正確的方向嗎?(我不想在 y 中使用 if 'disambiguation',我試圖掌握否定前瞻的作業原理。)謝謝。這是代碼:
list_links = ['/wiki/Oolong_(disambiguation)', '/wiki/File:Mi_Lan_Xiang_Oolong_Tea_cropped.jpg',
'/wiki/Taiwanese_tea', '/wiki/Tung-ting_tea',
'/wiki/Nantou_County', '/wiki/Taiwan', '/wiki/Dongfang_Meiren',
'/wiki/Alishan_National_Scenic_Area', '/wiki/Chiayi_County',
'/wiki/Dayuling', '/wiki/Baozhong_tea', '/wiki/Pinglin_Township']
def findString(string):
regex1 = r'(/wiki/)(_\($)(!?disambiguation)'
for x in list_links:
y = re.findall(regex1, x)
print(y)
findString(list_links)```
uj5u.com熱心網友回復:
def findString(string):
regex1 = "(.*)\((!?disambiguation)\)"
regex2 = "(/wiki/)(.*)\((!?disambiguation)\)"
for x in list_links:
m1 = re.search(regex1, x)
m2 = re.search(regex2, x)
if m1:
print(f"{m1.group(1)} {m1.group(2)}")
if m2:
print(f"{m2.group(1)} {m2.group(2)} {m2.group(3)}")
findString(list_links)
# /wiki/Oolong_ disambiguation
# /wiki/ Oolong_ disambiguation
uj5u.com熱心網友回復:
對于您的情況,最簡單的解決方案就是不使用正則運算式...只需執行以下操作:
list_links = ['/wiki/Oolong_(disambiguation)', '/wiki/File:Mi_Lan_Xiang_Oolong_Tea_cropped.jpg',
'/wiki/Taiwanese_tea', '/wiki/Tung-ting_tea',
'/wiki/Nantou_County', '/wiki/Taiwan', '/wiki/Dongfang_Meiren',
'/wiki/Alishan_National_Scenic_Area', '/wiki/Chiayi_County',
'/wiki/Dayuling', '/wiki/Baozhong_tea', '/wiki/Pinglin_Township']
def findString(string):
regex1 = r'(/wiki/)(_\($)'
for x in string:
if 'disambiguation' in x:
continue # skip
y = re.findall(regex1, x)
print(y)
findString(list_links)
uj5u.com熱心網友回復:
您不需要使用正則運算式。您可以遍歷list_links并檢查您要查找的字串“消歧”是否在list_links.
list_links = ['/wiki/Oolong_(disambiguation)', '/wiki/File:Mi_Lan_Xiang_Oolong_Tea_cropped.jpg',
'/wiki/Taiwanese_tea', '/wiki/Tung-ting_tea',
'/wiki/Nantou_County', '/wiki/Taiwan', '/wiki/Dongfang_Meiren',
'/wiki/Alishan_National_Scenic_Area', '/wiki/Chiayi_County',
'/wiki/Dayuling', '/wiki/Baozhong_tea', '/wiki/Pinglin_Township']
def findString():
for link in list_links:
if to_find in link:
print(link)
findString(list_links)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/444961.html
下一篇:php中的正則運算式不包括值
