【问题标题】:How to get just base urls from a text file in python?如何从python中的文本文件中获取基本网址?
【发布时间】:2017-04-12 02:39:38
【问题描述】:

我有一个文本文件名 weburl 有很多网址我只想使用正则表达式获取基本网址 网址

 wikimapia.org/1649944/Bahawalpur-Railway-Station
 panoramio.com/photo/84118355
 wikimapia.org/1649944/Bahawalpur-Railway-Station
 nativepakistan.com/photos-of-bahawalpur
 defence.pk/threads/pictures-of-pakistan-railways.303027
 nativepakistan.com/photos-of-bahawalpur
 panoramio.com/photo/51311162
 https://hiveminer.com/User/Pakistan Rail Buff

需要这个

 wikimapia.org
 panoramio.com
 wikimapia.org
 nativepakistan.com
 defence.pk
 nativepakistan.com
 panoramio.com
 https://hiveminer.com

使用正则表达式我该怎么做?

【问题讨论】:

  • 您将其归类为基本 URL 似乎是主观的
  • 继续 akkatracker 的观点,我原以为 'defence.pk' 是一个 baseurl,但 'defence.pk/threads' 不是。您确定要查找的规则是“基本网址”吗?
  • 帖子已编辑。请检查
  • Python 有解析 URL 的模块。为什么不尝试一下,等有代码后再回来?
  • 你的 URL 可以包含端口规范吗?如果是,是否应该包括在内?

标签: python regex python-2.7 url text-files


【解决方案1】:

一种解决方案可能是:

^(?:\w+://)?.*?(?::\d+)?(?=/|$)

它匹配行首 (^),后跟可选协议规范,例如https:// ((?:\w+://)?)。然后它匹配任意数量的 anything (.*?) 直到可选端口规范 - 例如 :80 ((?::\d+)?)。最后,它会检查匹配是否跟在/ 行尾$(正向预测(?=/|$))之后。

Check it out here at regex101.

请注意,如果您不想匹配端口部分,您可以将其移入正面展望。 IE。 ^(?:\w+://)?.*?(?=(?::\d+)?(?:/|$))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多