Поскольку ваше требование неясно, вот мое предположение, основанное на вашем вопросе:
Вы хотите убедиться, что строка:
- должна содержать хотя бы одну цифру и вхотя бы один алфавит
- Строка должна содержать только буквенно-цифровые символы,
@
и .
- Игнорировать первый символ в соответствии
Если это требование, тоВы можете использовать:
^(?=.*\d)(?=.*[a-zA-Z]).?[\da-zA-Z@.]+$
Это должно позволить вам проверить, соответствует ли входная строка вашему формату.
Однако, если вы хотите получить совпадающую строку в случае ее соответствияи, исключая первый специальный символ, если он существует, вы можете сделать
^(?=.*\d)(?=.*[a-zA-Z]).??([\da-zA-Z@.]+)$
Группа 1 - это то, что вам нужно
Объяснение регулярного выражения:
^ start of line
(?=.*\d) look-ahead: at least a digit
(?=.*[a-zA-Z]) look-ahead: at least a alphabet
.?? optional one any char,
reluctant match
( ) matching group
[\da-zA-Z@.]+ 1-or-more occurrence of
digits,alphabet, @ and dot
$ end of line
Regex101 Demo (на основе демоверсии Ника)