擅长:python、mysql、java
<p>您可以使用一个模式,其中包含一个捕获组和一个否定字符类<code>[^.]+</code>,该类匹配除点以外的任何字符</p>
<pre><code>https?://([^.]+)
</code></pre>
<p><a href="https://regex101.com/r/qkFB28/1" rel="nofollow noreferrer">Regex demo</a>| <a href="https://ideone.com/Bnuiae" rel="nofollow noreferrer">Python demo</a></p>
<p>例如</p>
<pre><code>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))
</code></pre>
<p>结果</p>
<pre><code>ahostnamea
</code></pre>
<p><strong>编辑</p>
<p>建议您也可以使用<a href="https://docs.python.org/3/library/urllib.parse.html" rel="nofollow noreferrer">urllib.parse</a>来获取主机名</p>
<pre><code>from urllib.parse import urlparse
o = urlparse("https://ahostnamea.net:666/api/v1/")
</code></pre>
<p><a href="https://ideone.com/Fvw0ja" rel="nofollow noreferrer">Python demo</a></p>
<p>例如,可以通过在点上拆分来获得第一部分:</p>
<pre><code>s = o.hostname.split('.', 1)[0]
print(s)
</code></pre>
<p>结果</p>
<pre><code>ahostnamea
</code></pre>