如何获取域名中第一个点后面的字符串,例如如何获取 .com 域中的 com 或 .co.uk 域中的 co.uk [重复]

问题描述 投票:0回答:2

我想要一个正则表达式来获取域名中的 comco.uk

$domain = abcde.co.uk;
$domain2 = abcde.com
    
$tdl = preg_replace('/^.*\.([^.]+)$/D', '$1', $domain);
echo $tdl;

$tdl2 = preg_replace('/^.*\.([^.]+)$/D', '$1', $domain);
echo $tdl2;

它在第二个中有效,但在第一个中无效。

php regex
2个回答
0
投票

你可以做

substr($domain, strpos($domain, '.') + 1)
。万无一失,并且可能比正则表达式更具可读性。

警告:仅当您的字符串包含

.

时它才有效

0
投票

此代码将输出第一个点之后的任何扩展名(使用 strpos() 是更好的做法,仅在需要使用正则表达式时才使用此代码):

$domain = "abcde.com";
$tdl = preg_replace('/^[^.]+\.(.*)$/', '$1', $domain);
echo $tdl;
© www.soinside.com 2019 - 2024. All rights reserved.