我想要匹配域名(使用preg_match),但我想排除子域名。
示例我希望匹配 example.org 上的所有子域名,但 boon.example.org 除外:
我试过这个:
$test = "boon.example.org";
$test2 = "null";
if(preg_match('#(?!boon)(\w+\.)?example\.org#', $test, $output)) {
$test2 = $output[2] .'example.org';
}
但是test2的输出是: oon.example.org 而非 example.org
有人有答案吗?
答案 0 :(得分:3)
如果您只查找确切的子域名,那么您是否只能检查字符串boon.example.org
是否存在?对于此,似乎对正则表达式有点过分。
无论如何,以下正则表达式应该做你想要的:
.*(?<!\bboon\.|^.)example.org
对于subdomain.example.org
以外的所有子域或boon.example.org
的任何子域,都会返回boon.example.org
。
答案 1 :(得分:0)
试试这个:
echo '<pre>';
$test = "boon.example.org";
$test2 = "null";
preg_match('/^(?!boon\.)([\w]+\.)?example\.org$/', $test, $output);
print_r($output);
这将匹配除了恩惠之外的所有子域。
答案 2 :(得分:0)