首页 > 解决方案 > 从具有特定 TLD 正则表达式的行中提取 URL

问题描述

大家好,我正在尝试从具有“.eu”特定结尾的文件中提取 URL,例如 .com。

我有这段代码来获取 URL 列表,但没有特定的结尾。任何人都可以改进它以最终获得特定的 TLD 吗?

urls = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', line).

行和预期结果的示例。

akijsdijas adsfaasd asfda https://www.google.eu/asd34a/as3df asdfs dsf76

a56 64ijas adsfaasd asfda https://www.facebook.eu/asd34a/as3df asdfs345 dsf76

fghddijas adsfaasd asfda https://www.facebook.com/asd34a/as3df asdfs dsf76

预期成绩:

https://www.google.eu

https://www.facebook.eu

标签: pythonregex

解决方案


您可以使用

re.findall(r'https?://\S*?\.eu\b', line)

请参阅正则表达式演示

正则表达式匹配:

  • https?://-http://https://
  • \S*?- 任何 0+ 个非空白字符,尽可能少
  • \.eu\b- a.eu后跟非单词字符或字符串结尾。

推荐阅读