Следующий шаблон будет соответствовать строкам, которые содержат только буквы, цифры, '+' или '-', включая международные символы, такие как 'å' или 'ö' (и исключая символ '_', который включен в '\w
):
^[-+\p{L}\p{N}]+$
Примеры:
string pattern = @"^[-+\p{L}\p{N}]+$";
Regex.IsMatch("abc", pattern); // returns true
Regex.IsMatch("abc123", pattern); // returns true
Regex.IsMatch("abc123+-", pattern); // returns true
Regex.IsMatch("abc123+-åäö", pattern); // returns true
Regex.IsMatch("abc123_", pattern); // returns false
Regex.IsMatch("abc123+-?", pattern); // returns false
Regex.IsMatch("abc123+-|", pattern); // returns false