Решение Саркирока правильное, но забыл тире и точка должна быть сброшена.
Вы должны добавить как \, чтобы избежать его, но помните, что в Java обратная косая черта сама по себе используется для экранирования, поэтому, если вы пишете регулярное выражение в java-файле, вы должны написать
String regex = "[a-zA-Z0-9\\._\\-]{3,}";
Обратите внимание на двойную обратную косую черту.