我在模板中有一个key.links.self变量(来自json输出),它是一个URL:

https://ahostnamea.net:666/api/v1/


现在我想做的是从此变量仅在模板ahostnamea中进行渲染。

我知道可以剪裁字母,但是当第一个字母始终具有相同的计数(https:// = 8个字母)时,其余字母就不是那么简单,而且会有所不同。


有什么方法可以将字符串从/拆分/剪切为.吗?还是其他方式?

最佳答案

您可以使用具有捕获组和否定字符类[^.]+的模式,该字符类与除点以外的任何字符匹配。

https?://([^.]+)


Regex demo | Python demo

例如

import re

regex = r"https?://([^.]+)"
test_str = "https://ahostnamea.net:666/api/v1/"
matches = re.search(regex, test_str)

if matches:
    print(matches.group(1))


结果

ahostnamea


编辑

如建议的那样,您也可以使用urllib.parse来获取主机名。

from urllib.parse import urlparse
o = urlparse("https://ahostnamea.net:666/api/v1/")


Python demo

您可以通过分割一个点来获得第一部分:

s = o.hostname.split('.', 1)[0]
print(s)


结果

ahostnamea

10-04 15:35
查看更多