我在模板中有一个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