Регулярные выражения на C# для валидации названия вводимого пользователем
Работаю над приложением которое должно позволять пользователю создавать списки любимых товаров, пользователь может сам давать имена своим спискам. Мне требуется создать регулярное выражение с помощью которого я мог бы проверить валидность названия списка который ввел пользователь на клиенте.
Для названия списка могут использоваться различные языки, например китайский или арабский, комбинировать разные языки не запрещено. Длина названия списка должная быть от 3 до 50 символов. Пробелы допускаются только между символами, нельзя иметь пробел в начале или в конце названия, нельзя так же иметь два и более пробела подряд. Нельзя использовать спец символы и знаки препинания. Можно использовать только буквы/иероглифы и цифры.
Примеры валидных названий:
My favorite list
My favorite list 2
My 運氣 list X
MyFavoriteList
M y F a v o r i t e L i s t
Примеры не валидных названий:
X
My_$_List!!!
My Favorite List
My Favorite List
Заранее, спсибо!