url_utils.py 884 B

1234567891011121314151617181920212223242526272829303132333435
  1. from typing import List
  2. import re
  3. def extract_urls_from_text(text: str) -> List[str]:
  4. """从文本中提取URL列表
  5. Args:
  6. text (str): 包含URL的文本
  7. Returns:
  8. List[str]: 提取的URL列表
  9. """
  10. # URL正则表达式模式
  11. url_pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+[\w\-\._~:/?#[\]@!\$&\'()*+,;=]*'
  12. # 查找所有匹配的URL
  13. urls = re.findall(url_pattern, text)
  14. # 去重并返回
  15. return list(set(urls))
  16. def extract_filename_from_url(url: str) -> str:
  17. """从URL中提取文件名
  18. Args:
  19. url (str): 文件的URL或本地路径
  20. Returns:
  21. str: 提取的文件名
  22. """
  23. # 移除URL中的查询参数
  24. clean_url = url.split('?')[0]
  25. # 提取文件名
  26. filename = clean_url.split('/')[-1] if '/' in clean_url else clean_url
  27. return filename