我想正則運算式的 URL 串列。
鏈接格式如下所示:
https://sales-office.ae/axcapital/damaclagoons/?cm_id=14981686043_130222322842_553881409427_kwd-1434230410787_m__g_&gclid=Cj0KCQiAxc6PBhCEARIsAH8Hff2k3IHDPpViVTzUfxx4NRD-fSsfWkCDT-ywLPY2C6OrdTP36x431QsaAt2dEALw_wcB
我需要的部分:
https://sales-office.ae/axcapital/damaclagoons/
我以前用這個:
re.findall('://([\w\-\.] )', URL)
然而,它讓我明白了:
sales-office.ae
你能幫忙嗎?
uj5u.com熱心網友回復:
而不是尋找\w僅與域匹配的 etc.,您實際上是在尋找 URL 引數開始位置(第一個?)之前的任何內容:
re.search(r'[^?]*', URL)
這意味著:從字串 ( search) 的開頭,所有不是 的字符?。以否定類開頭的字符類^,即不匹配而不是匹配。
這為您提供了一個匹配物件,[0]您要查找的 URL 將在哪里。
uj5u.com熱心網友回復:
您可以通過利用正則運算式來做到這一點urllib.parse.urlparse
from urllib.parse import urlparse
url = "https://sales-office.ae/axcapital/damaclagoons/?cm_id=14981686043_130222322842_553881409427_kwd-1434230410787_m__g_&gclid=Cj0KCQiAxc6PBhCEARIsAH8Hff2k3IHDPpViVTzUfxx4NRD-fSsfWkCDT-ywLPY2C6OrdTP36x431QsaAt2dEALw_wcB"
parsed_url = urlparse(url)
print(f"{parsed_url.scheme}://{parsed_url.netloc}{parsed_url.path}")
輸出
https://sales-office.ae/axcapital/damaclagoons/
uj5u.com熱心網友回復:
根據您的示例,這看起來可行:
\w ://\S \.\w \/\S \/
uj5u.com熱心網友回復:
基于:如何在正則運算式中匹配“直到此字符序列為止的任何內容”?
. ?(?=\?)
所以:
re.findall(". ?(?=\?)", URL)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444429.html
