Есть такой скрипт:
$text = 'xn--example.com'; // пример punycode домена
$text = preg_match_all ( "/((?!-)(?!xn--)[a-zа-яё0-9-]{1,63}(?<!-)\\.)+((?!-)(?!php|xn--)[a-zа-яё]{2,12})/u", $text, $matches );
foreach ($matches[0] as $match) {
echo $match;
}
Нужно исключать punycode домены в которых имеется "xn--". Скриптом выше исключается доменная зона, но имя по чему-то не исключается, а только обрезается на 1 символ, вот результат:
n--example.com
Подскажите как правильно прописать исключение чтобы домены с xn-- вообще не находились. И желательно чтобы в регулярном выражении не было начала и конца строки (^...$).