如何用正则表达式过滤Python列表中仅含v.redd.it域名的URL
解决方案
针对你的需求,优先推荐不需要正则的实现方案,逻辑更简单,更适合新手掌握:
# 原始URL列表,注意Python中字符串需要用引号包裹 url_list = [ "https://www.reddit.com/r/funnyvideos/comments/qfvclx/winners_of_the_rfunnyvideos_oscars_2021/", "https://v.redd.it/5tmm5wx5lgz71", "https://v.redd.it/n35a5fo8cez7", "https://v.redd.it/3j0sexqs8ez71", "https://v.redd.it/cmy0l1roxfz71" ] required_urls = [] excluded_urls = [] for url in url_list: # 直接用in运算符判断是否包含目标子串即可 if "v.redd.it/" in url: required_urls.append(url) else: excluded_urls.append(url) # 按你要求的格式输出结果 print("Your required urls :\n") for url in required_urls: print(f" {url},") print("\nExcluded Urls :\n") for url in excluded_urls: print(f" {url}")
如果你需要练习正则表达式的使用,也可以用以下实现,注意正则中.是特殊匹配符,需要加反斜杠转义才能匹配实际的点号:
import re url_list = [ "https://www.reddit.com/r/funnyvideos/comments/qfvclx/winners_of_the_rfunnyvideos_oscars_2021/", "https://v.redd.it/5tmm5wx5lgz71", "https://v.redd.it/n35a5fo8cez7", "https://v.redd.it/3j0sexqs8ez71", "https://v.redd.it/cmy0l1roxfz71" ] required_urls = [] excluded_urls = [] # 定义正则匹配规则 pattern = r"v\.redd\.it/" for url in url_list: if re.search(pattern, url): required_urls.append(url) else: excluded_urls.append(url) # 输出部分和上述方案一致 print("Your required urls :\n") for url in required_urls: print(f" {url},") print("\nExcluded Urls :\n") for url in excluded_urls: print(f" {url}")
内容的提问来源于stack exchange,提问作者Sainita
相关产品推荐
相关产品推荐

