Я предполагаю, что вы имеете в виду alphaunumeric, по крайней мере, один письмо и 4 до 8 символов.
Попробуйте это:
(?=.*[a-zA-Z])[a-zA-Z0-9]{4,8}
(?=
- мы используем lookahead, поэтому мы можем проверить что-то, не затрагивая остальную часть матча
.*[a-zA-Z]
- матч за все, за которым следует письмом, то есть проверить, что у нас есть хотя бы одна буква
[a-zA-Z0-9]{4,8}
- Это будет соответствовать букве или цифре от 4 до 8 раз.
Однако, вы говорите, намерение для «это не может быть просто все номера или просто все буквы», но требования 1, 2 и 3 не сделать это, так как это может быть все письма и отвечать все три требования. Возможно, вы хотите этого, с дополнительным опережающим просмотром, чтобы подтвердить, есть по крайней мере одна цифра:
(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{4,8}
Использование a-zA-Z
не очень товарищеское, так что вы можете быть лучше использовать код спасай «письмо» если они доступны в вашем вкусе регулярных выражений.
Кроме того, я надеюсь, что это не подходит для приемлемых паролей, так как 4 символа, вероятно, недостаточно длинны.
по характеру Я имел в виду письмо, а 4-8 я имел в виду любую альфу. – mrblah