gpt4 book ai didi

python - 如何使用正则表达式仅匹配 URL 的域部分?

转载 作者:行者123 更新时间:2023-11-30 22:39:46 24 4
gpt4 key购买 nike

我正在编写一个Python代码来处理一段文本,其中对我来说无用的文本中包含URL。在文本 block 之外,我只需要域,而不是完整的 URL。输入示例:

47.91.158.176 or 54.145.185.110 port 80 - gooolgeremf.top - GET /search.php
47.90.205.113 or 35.187.59.173 port 80 - voperforseanx.top/site/chrome_update.html

所以这里我只需要 gooolgeremf.topvoperforseanx.top 匹配,但我编写的正则表达式也将匹配 search.phpchrome_update.html

我的想法是正则表达式应该在 / 之后停止匹配。但是我不知道如何实现它,特别是如何不阻止整个文本文件中第一个 / 之后出现的匹配域。

到目前为止它在我的代码中的工作方式:

regexdm="[A-Za-z0-9]{1,}\.[A-Za-z0-9]{1,10}\.?[A-Za-z]{1,}\.?[A-Za-z]{1,}"
dmsc=re.findall(regexdm, iocsd.read())

最佳答案

我建议添加分隔符条件。假设域名可能仅由空格、行首/行尾以及域名之前的两个正斜杠和之后的一个斜杠包围,则正则表达式将为:

(?: |//|^)([A-Za-z0-9]{1,}\.[A-Za-z0-9]{1,10}\.?[A-Za-z]{1,}\.?[A-Za-z]{1,})(?: |/|$)

演示:https://regex101.com/r/TQKlDP/1

关于python - 如何使用正则表达式仅匹配 URL 的域部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com