Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите разобрать, что за регулярка
Форумы портала PHP.SU » PHP » Регулярные выражения » Помогите разобрать, что за регулярка

Страниц (1): [1]
 

1. ekkl - 15 Декабря, 2013 - 10:59:32 - перейти к сообщению
В фреймфорке Kohana в примерах наткнулся на регулярку
PHP:
скопировать код в буфер обмена
  1. ->rule('username', 'regex', array(':value', '/^[a-z_.]++$/iD'))

Не могу сообразить, зачем два плюса, и что означает точка в квадратных скобках. По идее любой символ, но любые символы не пропускает.
например пропускает login login.s login_s
не пропускает login.4 login.4s login_4s
Что за правила такие?
Насколько удалось найти D означает, одна не цифра
http://www.php.su/articles/?cat=...exp&page=008
2. Мелкий - 15 Декабря, 2013 - 13:02:00 - перейти к сообщению
Точка в квадратных скобках означает точку. Просто точку. Потому что в квадратных скобках.
Два плюса - надо довольно глубоко углубляться во внутреннюю работу регулярных выражений, чтобы описать отличие от одного плюса. Вкратце - два плюса что слопали, то слопали и обратно не отдадут ни символа, даже если это нужно для успеха всего выражения. Подробнее читайте отличную книгу по регуляркам: Джеффри Фридл "Регулярные выражения"
D - расположен в области модификаторов, поэтому и значение описано в модификаторах: http://www.php.net/manual/ru/ref...rn.modifiers.php

А в целом регулярка требует, чтобы строка состояла только из одного или более символа латинского алфавита, знака подчёркивания или точки.
3. ekkl - 15 Декабря, 2013 - 15:48:24 - перейти к сообщению
Спасибо.
Я так понял, что если бы не было D выражение пропустило бы перевод строки.
ПС. Нужно чтобы логин содержал латиницу, цифры и _ , но первым символом должна быть только латиница
'/^[a-z][a-z0-9_]{1,}$/iD' прокатит, или есть изящнее?
4. Саныч - 15 Декабря, 2013 - 17:13:26 - перейти к сообщению
ekkl пишет:
прокатит, или есть изящнее?
Прокатит, но есть изящнее)
Минимальная длина логина в таком случае 2 символа
5. ekkl - 15 Декабря, 2013 - 21:25:45 - перейти к сообщению
Спасибо.

 

Powered by ExBB FM 1.0 RC1