Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хм, хорошо...

Действительно с IP я стормозил, но все равно не понимаю, как это должно работать... Вот здесь мы определили домен:
(?:[a-z0-9-]{1,128}\.)+
(?:com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})
А здесь, при необходимости '|' подсавим IP вместо домена:
|(?!0)(??!0[^.]|255)[0-9]{1,3}\.){3}
(?!0|255)[0-9]{1,3}

Кстати, не совсем понятно как тут использована операция |, т.е. смысл ясен - выбрать домены ИЛИ ip, но она же работает между ближайшими группами, т.е. (...)(var1)|(var2)(...), а судя по коду, тот же домен состоит из нескольких групп. Тогда получается: что в выборе участвуют только (net)|(66.79.174.172). Как же так?

Интересно, почему для IP нельзя было записать так:
(?:[0-9]{1,3}\.){3}[0-9]{1,3}

И возвращаясь к строке после домена:
(?:/[a-z0-9.,_@%&?+=\~/-]*)?
она озватывает весь остаток до якоря, НО, шаблон не содержит
 '![]{}|' и пробел! Хотя те же мелкософтовские сервера всё это используют, т.е. существуют реальные примеры ссылок!

Пока!


Добавлено:

Извеняюсь по поводу "(var1)|(var2)", обнаружил, что ператор '|' работает в пределах всей группы...

Отправлено: 15:43, 02-07-2004 | #3