我正在尝试提取名称服务器。
$output
的格式是包含ns1.nameserver.com
的格式。
它可能还包含www.apple.com
当然,这不是名称服务器。
我试图不包含任何包含www.
的结果
我的尝试如下:
$regexp = "/(?<!www)([A-Za-z0-9-]+[\.][A-Za-z0-9-]+[\.][A-Za-z0-9-\.]+)/i";
preg_match_all($regexp, $output, $nameservers);
答案 0 :(得分:3)
你需要前瞻,而不是向后看:
/(?!www)([A-Za-z0-9-]+[\.][A-Za-z0-9-]+[\.][A-Za-z0-9-\.]+)/i
但是,这可能还不够,因为它会继续匹配字符串abc.def.com
中的www.abc.def.com
。你还需要一些锚点和一个lookbehind(你不需要一些括号,反斜杠和i
修饰符):
/(?<!\.)(?!www)\b([A-Za-z0-9-]+\.[A-Za-z0-9-]+\.[A-Za-z0-9.-]+)/