У меня есть правило для имен пользователей, и все из этих правил не должно совпадать с именем пользователя. Имена пользователей могут содержать следующие символы:
- Прописные буквы
- Строчные буквы
- Числа
- Подчеркивание (_)
- Da sh (-)
- Пробелы
Эти имена пользователей действительны:
User1
user2
_user_3
5user-
user 6
USER 7
Недопустимы:
user@8
9us(ser
us=er 10
*user 11
Поскольку они имеют символы которые не были определены как разрешенные. Когда я использую это регулярное выражение:
[\-\_a-zA-Z0-9].*(?![\w,])
Это соответствует всем им.
Есть ли способ сопоставления только того, что определено, вместо использования [^]
для исключения каждого недопустимого символа? Я скорее не создаю строку в коде, содержащую каждый отдельный символ Юникода, который не разрешен, потому что их тысячи.