<p>那<code>[^.]+\.\w+$</code>呢</p>
<p><a href="http://regex101.com/r/qK7aE2" rel="nofollow">See it work</a></p>
<p>或者,在Python中:</p>
<pre><code>import re
tgt='''\
e179206120.adsl.alicedsl.de
safecamp-plus-2098.unibw-hamburg.de
p5B30EBFE.dip0.t-ipconnect.de'''
print re.findall(r'([^.]+\.\w+$)', tgt, re.M | re.S)
# ['alicedsl.de', 'unibw-hamburg.de', 't-ipconnect.de']
</code></pre>
<p>正则表达式解释:</p>
<ol>
<li><code>[^.]+</code>除文字<code>.</code>之外的1个或多个字符</li>
<li><code>\.</code>literal<code>.</code>它需要<code>\</code>,因为如果不使用它,它将是regex的任何chaarcter</li>
<li><code>\w+</code>在<code>[a-z] [A-Z] [0-9] [_]</code><em>范围内的一个或多个字符可能是<code>[a-zA-Z]+</code>,因为没有任何不是ASCII的<strong>旧的</strong>TLD。如果您想管理较新的<a href="http://en.wikipedia.org/wiki/Internationalized_country_code_top-level_domain" rel="nofollow">Internationalized TLD's</a>,您需要一个不同的正则表达式。你知道吗</li>
<li><code>$</code>行结尾的断言</li>
</ol>
<p>你应该知道你对TLD的定义是不完整的。例如,这个regex方法将破坏<a href="http://www.bbc.co.uk" rel="nofollow">bbc.co.uk</a>的合法url和许多其他包含公共SLD的url。如果可以的话,可以使用一个库来获得更广泛的适用性。您还可以使用<a href="http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1" rel="nofollow">mozilla list of TLD and SLD's</a>来知道何时应该在host的定义中包含两个句点。你知道吗</p>