Это должно сделать это:
/^[a-zA-Z0-9]*_?[a-zA-Z0-9]*$/
Имейте в виду, что класс персонажа одного предмета является избыточным.Напишите атом исключительно вместо этого.И {1}
является еще одним серьезно избыточным квантификатором.
/[_]{1}/
- это то же самое, что и
/_/
Редактировать:
На основе новых ограничений иВ полезном комментарии Криса это, кажется, более подходящее регулярное выражение:
/^[a-zA-Z0-9]+_?[a-zA-Z0-9]+$/D
Это имя пользователя, состоящее как минимум из двух символов, не заканчивающееся или начинающееся с необязательного подчеркивания, и без символов перевода строки в конце.