Мне нужно (php) регулярное выражение для соответствия правилам пользователя Yahoo:
Используйте от 4 до 32 символов и начинайте с буквы. Вы можете использовать буквы, цифры, символы подчеркивания и одну точку (.).
/^[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 материала. Как (?: ... )
для не захвата парен.
Примечание. Я добавил отсутствующий закрытый палец.