Yahoo Имя пользователя Regex

Мне нужно (php) регулярное выражение для соответствия правилам пользователя Yahoo:

Используйте от 4 до 32 символов и начинайте с буквы. Вы можете использовать буквы, цифры, символы подчеркивания и одну точку (.).

Solutions Collecting From Web of "Yahoo Имя пользователя Regex"

/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/ 

Или немного короче:

 /^[az](?=[\w.]{3,31}$)\w*\.?\w*$/i 
 /[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/ 

И проверьте, нет ли strlen ($ username)> = 4 и <= 32.

Предел одной точки? Это сложно.

Я не эксперт по регулярному выражению, но я думаю, что это получится, кроме этого:

 [A-Za-z][A-Za-z0-9_.]{3,31} 

Может быть, вы можете проверить. требование отдельно?

Используя lookaheads, вы можете сделать следующее:

 ^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$ 

Поскольку вы не указали, какой тип регулярного выражения вам нужен, я добавил много совместимого с Perl 5 материала. Как (?: ... ) для не захвата парен.

Примечание. Я добавил отсутствующий закрытый палец.