Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Регулярные выражения > Помогите разобраться в выражении


Автор: Salatovec 2.8.2013, 20:57
Доброго времени суток, друзья. Изучаю регулярные выражения, наткнулся на такой шаблон: 

/^((([a-zA-Z]([a-zA-Z0-9_-]{0,61}[a-zA-Z0-9])?)|(([a-zA-Z0-9][a-zA-Z0-9_-]{0,61})?[a-zA-Z]))[.])+[a-zA-Z]+$/

к сожалению в источнике изучения данная строчка не разобрана, а хотелось бы понять. Помогите разобраться, пожалуйста.

Заранее огромное спасибо! 

Автор: alezzz 3.8.2013, 08:57
1. буква
2. перед буквой буква/цифра и от 0 до 61 буква/цифра/_/- 
    или 
    после буквы от 0 до 61 буква/цифра/_/- и буква/цифра

    всё что написано в п.2 может встерится от 0 до 1 раза
3. точка
4. всё что описано выше должно быть от 1 до бесконечности раз
5. завершает всё это от 1 до бесконечности букв

на примерах:
совпадёт:
a.b.c.d
a9-9.ABC
d-1.c_2.ef
0000a.0000b.a

не совпадёт:
abc
0.1.2.ABC
-a._b.cde
a.b.c.123

На практике даже незнаю где это нужно. Может проверка DNS имени.

Автор: Salatovec 3.8.2013, 10:22
alezzz, Спасибо - мне кажется, что это скорей проверка домена =)

Автор: JackYF 5.8.2013, 22:17

 ! 
JackYF
Ко мне дошли убедительные сведения, что вопрос взят из одного конкурса для программистов. Не следует такие вопросы задавать на форумах.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)